import { Inspector } from './debug';
import { BotRequest, BotResponse, ResolvedPlugins, Route, Routes, Session } from './models';
import { Router } from './routing';
export interface CoreBotConfig {
    appId?: string;
    defaultDelay?: number;
    defaultRoutes?: Route[];
    defaultTyping?: number;
    inspector?: Inspector;
    plugins?: ResolvedPlugins;
    renderer: any;
    routes: Routes;
    theme?: any;
}
export declare class CoreBot {
    appId?: string;
    defaultDelay: number;
    defaultRoutes: Route[];
    defaultTyping: number;
    inspector: Inspector;
    plugins: ResolvedPlugins;
    renderer: any;
    rootElement: any;
    router: Router | null;
    routes: Routes;
    theme?: any;
    constructor({ renderer, routes, theme, plugins, appId, defaultTyping, defaultDelay, defaultRoutes, inspector, }: CoreBotConfig);
    setSystemLocale(locale: string, session: Session): void;
    setUserLocale(locale: string, session: Session): void;
    setUserCountry(country: string, session: Session): void;
    input(request: BotRequest): Promise<BotResponse>;
    private getBotContext;
    private runInput;
    private updateSession;
    private runPrePlugins;
    private getOutput;
    private setRouter;
    private updateRequestFromOutput;
    private runPostPlugins;
    private runRedirectAction;
}
