import type { Controllers, SecurityProviders, TemplateEngineLoaderResult } from '../types/';
import { Environment } from '../template/';
import { AbstractFactory } from '../core/AbstractFactory';
import type { DatabaseContainer } from '../database/DatabaseContainer';
import type { EmailFactory } from '../email/EmailFactory';
import type { SessionFactory } from '../security/SessionFactory';
export declare class ControllerFactory extends AbstractFactory {
    protected readonly controllers: Controllers;
    protected templateEnvironment: Environment;
    constructor(controllers: Controllers, emailFactory: EmailFactory, sessionFactory: SessionFactory, securityProviders: SecurityProviders, databaseContainer: DatabaseContainer, templateData: TemplateEngineLoaderResult);
    build<T>(key: string): T;
}
