interface IField { title: string; value: string; short: boolean; } interface IAction { type: string; text: string; url: string; style?: string; } /** * See the Attachment structure section in https://api.slack.com/docs/message-attachments for * information about each field. */ interface IAttachment { fallback: string; color: string; pretext: string; author_name: string; author_link: string; author_icon: string; title: string; title_link: string; text: string; fields: IField[]; actions: IAction[]; image_url: string; thumb_url: string; footer: string; footer_icon: string; ts: number; } /** * Service to send slack messages. For this to work there needs to be environment variables with * keys of the form of `SLACK_CHANNEL_` and values of form `#`. Here `` can * be anything to help you identify the token. */ declare abstract class AbstractSlack { readonly env: import("../services/Environment").Environment; readonly io: import("../services/IO").IO; readonly messages: import("../services/IO").IBuilderMessages | null; abstract getTitle(): string; abstract getTitleLink(): string; run(): Promise; getStatus(): 'good' | 'warning' | 'danger'; getBuildType(): string; getBuildBranch(): string; getStatusMessage(status: 'good' | 'warning' | 'danger'): string; getFields(): IField[]; getActions(): IAction[]; protected createAttachment(): Partial; private sendMessage; } interface ISlacker { new (): AbstractSlack; } export { IField, IAction, IAttachment, AbstractSlack, ISlacker, };