import { Container, interfaces } from 'inversify';
import { Logger } from '../logger.js';
import { Extension } from './extension.js';
import { ResolverService } from './services';
import { SessionLifecycleHandler } from './session.js';
export declare class Engine {
    container: Container;
    constructor();
    get<T>(serviceIdentifier: interfaces.Newable<T> | interfaces.Abstract<T>): T;
    get $logger(): Logger;
    get $resolver(): ResolverService;
    addExtension(extension: Extension): void;
    removeExtension(extension: Extension): void;
    startSession(): Promise<void>;
    finishSession(): Promise<void>;
    resolveSessionHandlers(): SessionLifecycleHandler[];
    getAllBindings(): interfaces.Binding<any>[];
    findBinding<T>(serviceIdentifier: interfaces.Newable<T> | interfaces.Abstract<T>): T | null;
    cleanupUnusedSessionHandlers(): void;
}
//# sourceMappingURL=engine.d.ts.map