import { type CodedError, type Methods as SlackSDK } from '@slack/web-api';
import Addon from './addon.js';
import { type IAddonConfig, type IFlagResolver } from '../types/index.js';
import type { IEvent } from '../events/index.js';
interface ISlackAppAddonParameters {
    accessToken: string;
    defaultChannels: string;
}
export type SlackClientProvider = (accessToken: string) => SlackSDK;
export default class SlackAppAddon extends Addon {
    readonly clientProvider: SlackClientProvider;
    private msgFormatter;
    flagResolver: IFlagResolver;
    private accessToken?;
    private slackClient?;
    constructor(args: IAddonConfig, clientProvider?: SlackClientProvider);
    handleEvent(event: IEvent, parameters: ISlackAppAddonParameters, integrationId: number): Promise<void>;
    getUniqueArray<T>(arr: T[]): T[];
    registerEarlyFailureEvent(integrationId: number, event: IEvent, earlyFailureMessage: string): void;
    findTaggedChannels({ tags }: Pick<IEvent, 'tags'>): string[];
    getDefaultChannels(defaultChannels?: string): string[];
    parseError(error: Error | CodedError): string;
}
export {};
//# sourceMappingURL=slack-app.d.ts.map