import { Context as LambdaContext } from 'aws-lambda/handler';
import { MiddlewareObj } from '@middy/core';
interface Request<TEvent = any, TResult = any, TErr = Error> {
    event: TEvent;
    context: LambdaContext;
    response: TResult | null;
    error: TErr | null;
    internal: {
        [key: string]: any;
    };
}
export interface Options {
    errorPropertiesToOmit?: string[];
}
/** The actual middleware */
export declare class JSONErrorHandlerMiddleware implements MiddlewareObj {
    static create(options?: Options): JSONErrorHandlerMiddleware;
    /** The logger used in the module */
    private readonly logger;
    /** The list of properties to omit from the error object */
    private readonly errorPropertiesToOmit;
    /** Creates a new JSON error handler middleware */
    constructor({ errorPropertiesToOmit }?: Options);
    onError: (request: Request) => Promise<void>;
    private shouldExposeError;
}
declare const _default: typeof JSONErrorHandlerMiddleware.create;
export default _default;
