import type { ControllerMethodReturnType, GenericControllerInstance, RequestConfigControllerUser, Route } from '../../types';
import { Context } from '../Context';
import { ControllerFactory } from '../../controller/ControllerFactory';
import { Injector } from '../../dependencies/Injector';
import type { Session } from '../../security/Session';
export declare class ControllerRequestHandler {
    protected readonly context: Context;
    protected readonly loadedUser: RequestConfigControllerUser;
    protected controllerInstance: GenericControllerInstance;
    protected controllerMethod: string;
    protected injector: Injector;
    private didRun;
    constructor(context: Context, controllerFactory: ControllerFactory, controllerKey: string, loadedUser: RequestConfigControllerUser, { controllerMethod }: Route);
    run(): Promise<void>;
    protected handleResult(result: ControllerMethodReturnType): void;
    protected saveSessionStores(injectedSessions: Session[]): Promise<void>;
}
