import { APIGatewayProxyEvent, APIGatewayProxyEventV2, Context, SQSEvent } from 'aws-lambda';
import { RabbitmqEvent } from '..';
import { ApiGatewayEvent, ApiGatewayEventHandler, ApiGatewayResult, CronJobEvent, DfnsApiKind, LambdaEventSourceKind } from '../types';
declare type IncomingEventSourceKindResult = {
    sourceKind: LambdaEventSourceKind.RabbitMq;
    event: RabbitmqEvent;
} | {
    sourceKind: LambdaEventSourceKind.Sqs;
    event: SQSEvent;
} | {
    sourceKind: LambdaEventSourceKind.ApiGateway;
    event: APIGatewayProxyEvent;
} | {
    sourceKind: LambdaEventSourceKind.ApiGatewayV2;
    event: APIGatewayProxyEventV2;
} | {
    sourceKind: LambdaEventSourceKind.CronJob;
    event: CronJobEvent;
};
export declare const getIncomingEventSourceKind: (event: any) => IncomingEventSourceKindResult;
export declare const getApiGatewayEventSourceApi: (event: ApiGatewayEvent) => DfnsApiKind;
export declare const isRabbitMqEvent: (candidate: any) => candidate is RabbitmqEvent;
export declare const isDfnsCronJob: (candidate: any) => candidate is CronJobEvent;
export declare const isSQSEvent: (candidate: any) => candidate is SQSEvent;
export declare const isApiGatewayV1Event: (candidate: any) => candidate is APIGatewayProxyEvent;
export declare const isApiGatewayV2Event: (candidate: any) => candidate is APIGatewayProxyEventV2;
export declare const isApiGatewayResult: (res: any) => res is ApiGatewayResult;
export declare const getApiGatewayEventHttpMethod: (event: ApiGatewayEvent) => string;
export declare const getApiGatewayEventHttpPath: (event: ApiGatewayEvent) => string;
export declare const withRequestLogging: (handler: ApiGatewayEventHandler) => (event: ApiGatewayEvent, context: Context) => Promise<ApiGatewayResult>;
export declare const withResponseLogging: (eventHandler: ApiGatewayEventHandler) => (event: ApiGatewayEvent, context: Context) => Promise<ApiGatewayResult>;
export {};
