hunk.code_window:   header: () => JSX.Element;
     footer: () => JSX.Element;
     listItem: ListItem;
     actionsResultBlock: (templateIdentifier: string, messageAction: IMessageAction) => JSX.Element;
     tabs?: ITab[];
   }
   export interface IStore {
  
hunk.labels: keep keep keep keep add keep keep keep
hunk.after_edit:   showUserPreferences?: boolean;
  
hunk.file_path: packages/notification-center/src/index.ts
hunk.type: add
file: import { compileTemplate } from '../content/content.engine';
  import { IDirectProvider } from '../provider/provider.interface';
  import { IMessage, ITriggerPayload } from '../template/template.interface';
  
  export class DirectHandler {
    constructor(private message: IMessage, private provider: IDirectProvider) {}
  
    async send(data: ITriggerPayload) {
      let content = '';
      if (typeof this.message.template === 'string') {
        content = compileTemplate(this.message.template, data);
      } else {
        content = await this.message.template(data);
      }
  
      if (!data.$wehookUrl) {
        throw new Error(
          'webhookUrl is missing in trigger payload. To send an a direct message you must specify a webhookUrl property.'
        );
      }
  
      return await this.provider.sendMessage({
        webhookUrl: data.$webhookUrl as string,
        content,
      });
    }
  }
  