import { Context, SQSBatchResponse, SQSEvent } from 'aws-lambda';
import { CronJobEvent, CronJobEventHandler } from '..';
import { DfnsMessagePerTopic, DfnsMessageTopic, RabbitmqEvent } from '../messaging';
import { ApiGatewayEvent, ApiGatewayResult, ApiOperationMapping, BusinessLogicBase, BusinessLogicGeneric, LambdaOptions, QueryParams, RabbitMqEventHandler, RabbitMqEventHandlerOptions, SQSMessageHandler, SqsQueueMap } from '../types';
export declare class BusinessLogicMap {
    private httpMap;
    private sqsQueueMap;
    private graphQlMap;
    private eventHandlerMap;
    private cronJobHandlerMap;
    constructor();
    registerOperation(businessLogic: BusinessLogicGeneric, mappings: Partial<ApiOperationMapping>): void;
    registerSqsEventHandler<T>(queueArn: string | RegExp, handler: SQSMessageHandler<T>, options?: Partial<Pick<SqsQueueMap, 'batchExecution'>>): void;
    registerEventHandler<T extends DfnsMessageTopic>(topic: T, eventHandler: RabbitMqEventHandler<DfnsMessagePerTopic[T]>, options?: RabbitMqEventHandlerOptions): void;
    registerCronJobHandler(topic: string, cronJobEventHandler: CronJobEventHandler): void;
    handleSQSEvent(sqsEvent: SQSEvent, context: Context): Promise<SQSBatchResponse>;
    handleApiGatewayEvent(event: ApiGatewayEvent, context: Context): Promise<any>;
    handleRabbitMqEvent: (busEvent: RabbitmqEvent, context: Context, options?: LambdaOptions | undefined) => Promise<ApiGatewayResult>;
    private handleRabbitMqMessage;
    handleCronJobEvent: (cronJobEvent: CronJobEvent, context: Context) => Promise<void>;
    resolveHttpEvent(event: ApiGatewayEvent): {
        query: QueryParams;
        businessLogic: BusinessLogicBase;
    };
    private resolveSQSEventHandler;
}
