import { Context } from 'aws-lambda';
import { IRequestHandlerFactory } from '../../application';
import { IResponseSenderFactory } from '../core/response-sending-interfaces/i-response-sender-factory.interface';
import { IBootstrapperFactory } from '../bootstrapping-interfaces/i-bootstrapper-factory.interface';
import { IEventTranslatorFactory } from '../core/event-translation-interfaces/i-event-translator-factory.interface';
import { IEventHandler } from '../core/event-handling-interfaces/i-event-handler.interface';
export declare class LambdaHandler<TEvent> {
    protected readonly responseSenderFactory: IResponseSenderFactory;
    protected readonly bootstrapperFactory: IBootstrapperFactory;
    protected readonly eventTranslatorFactory: IEventTranslatorFactory<TEvent>;
    protected readonly requestHandlerFactory: IRequestHandlerFactory;
    constructor(responseSenderFactory: IResponseSenderFactory, bootstrapperFactory: IBootstrapperFactory, eventTranslatorFactory: IEventTranslatorFactory<TEvent>, requestHandlerFactory: IRequestHandlerFactory);
    run(event: TEvent, lambdaContext: Context): Promise<unknown>;
    toFunction(): (event: TEvent, lambdaContext: Context) => Promise<unknown>;
    protected createApplicationEventHandler(): IEventHandler<TEvent>;
    private createEventHandler;
}
