import { SlackMessage } from "@atomist/slack-messages";
import { GraphClient } from "../graph/GraphClient";
import { Destination, MessageClient, MessageOptions, RequiredMessageOptions, SlackMessageClient } from "./MessageClient";
export declare abstract class MessageClientSupport implements MessageClient {
    respond(msg: any, options?: MessageOptions): Promise<any>;
    send(msg: any, destinations: Destination | Destination[], options?: MessageOptions): Promise<any>;
    abstract delete(destinations: Destination | Destination[], options: RequiredMessageOptions): Promise<void>;
    protected abstract doSend(msg: any, destinations: Destination[], options?: MessageOptions): Promise<any>;
}
export declare const Query = "\nquery ChatTeam {\n  ChatTeam {\n    id\n  }\n}";
export declare class DefaultSlackMessageClient implements MessageClient, SlackMessageClient {
    private readonly delegate;
    private readonly graphClient;
    constructor(delegate: MessageClient, graphClient: GraphClient);
    respond(msg: any, options?: MessageOptions): Promise<any>;
    send(msg: any, destinations: Destination | Destination[], options?: MessageOptions): Promise<any>;
    delete(destinations: Destination | Destination[], options: RequiredMessageOptions): Promise<void>;
    addressUsers(msg: string | SlackMessage, users: string | string[], options?: MessageOptions): Promise<any>;
    addressChannels(msg: string | SlackMessage, channels: string | string[], options?: MessageOptions): Promise<any>;
}
export declare function lookupChatTeam(graphClient: GraphClient): Promise<string>;
//# sourceMappingURL=MessageClientSupport.d.ts.map