import type { CloudFormationCustomResourceCreateEvent, CloudFormationCustomResourceUpdateEvent, CloudFormationCustomResourceDeleteEvent, CloudFormationCustomResourceHandler, Context } from 'aws-lambda';
import { LogFactory, Logger } from './log-factory';
export interface ResourceHandlerReturn {
    physicalResourceId: string;
    responseData?: Record<string, unknown>;
}
export interface OnCreateHandler {
    (event: CloudFormationCustomResourceCreateEvent, context: Context, logger: Logger): Promise<ResourceHandlerReturn>;
}
export interface OnUpdateHandler {
    (event: CloudFormationCustomResourceUpdateEvent, context: Context, logger: Logger): Promise<ResourceHandlerReturn>;
}
export interface OnDeleteHandler {
    (event: CloudFormationCustomResourceDeleteEvent, context: Context, logger: Logger): Promise<void>;
}
export interface ResourceHandler {
    onCreate?: OnCreateHandler;
    onUpdate?: OnUpdateHandler;
    onDelete?: OnDeleteHandler;
}
export interface ResourceHandlerFactory {
    (logger?: Logger): ResourceHandler | Promise<ResourceHandler>;
}
export declare const customResourceHelper: (resourceHandlerFactory: ResourceHandlerFactory, logFactory?: LogFactory | undefined) => CloudFormationCustomResourceHandler;
