import Context from '../context/Context';
import { Action } from '../types';
import { RoutePredicate } from '../router';
import SlackContext from './SlackContext';
import { EventTypes, InteractionTypes } from './SlackTypes';
declare type Route = <C extends Context>(action: Action<SlackContext, any>) => {
    predicate: RoutePredicate<C>;
    action: Action<SlackContext, any>;
};
declare type Slack = Route & {
    any: Route;
    message: Route;
    event: <C extends Context>(eventType: EventTypes | InteractionTypes, action: Action<SlackContext, any>) => {
        predicate: RoutePredicate<C>;
        action: Action<SlackContext, any>;
    };
    command: <C extends Context>(commandText: string, action: Action<SlackContext, any>) => {
        predicate: RoutePredicate<C>;
        action: Action<SlackContext, any>;
    };
};
declare const slack: Slack;
export default slack;
//# sourceMappingURL=routes.d.ts.map