import * as apigwv2 from "@aws-cdk/aws-apigatewayv2-alpha";
import { aws_events as Events } from "aws-cdk-lib";
import { IFunction } from "aws-cdk-lib/aws-lambda";
import { ISecret } from "aws-cdk-lib/aws-secretsmanager";
import { Construct } from "constructs";
export interface SlackEventBusSingleAppProps {
    /**
     * `appId` to use for all request validating
     */
    readonly appId: string;
    /**
     * `eventsApiPath` which would be used for the events path
     */
    readonly eventsApiPath: string;
}
export interface SlackEventBusProps {
    /**
     * `secret` is a reference to the Secret parameter that stores the signing-secret
     * and also if oAuth enabled; client id / client secret for each individual appId
     */
    readonly secret: ISecret;
    /**
     * `eventBusName` optional name to override the event bus name
     */
    readonly eventBusName?: string;
    /**
     * `httpApi` optional HTTP API to use, instead of Construct creating a new one
     */
    readonly httpApi?: apigwv2.HttpApi;
    /**
     * `singleApp` optionally configure to use a single application
     * with fixed app id and path to use
     */
    readonly singleApp?: SlackEventBusSingleAppProps;
}
export declare class SlackEventBus extends Construct {
    private readonly props;
    private static readonly SLACK_EVENT_BUS_NAME;
    private static appPath;
    private readonly pEventBus;
    private readonly pSlackHandlerLambdaAlias;
    private readonly pHttpApi;
    constructor(scope: Construct, id: string, props: SlackEventBusProps);
    slackEventsRequestUrl(appId?: string): string;
    get eventBus(): Events.EventBus;
    get slackHandlerLambdaAlias(): IFunction;
}
