import { Context, ProxyResult } from 'aws-lambda';
import { BackgroundEntry } from './background/background-entry';
import { EpsilonInstance } from './epsilon-instance';
import { LoggerInstance, LoggerOptions } from '@bitblit/ratchet/common';
/**
 * This class functions as the adapter from a default Lambda function to the handlers exposed via Epsilon
 */
export declare class EpsilonGlobalHandler {
    private _epsilon;
    private static LOGGER_CONFIGURED;
    private static GLOBAL_INSTANCE_PROVIDER;
    static set globalInstanceProvider(input: () => Promise<EpsilonGlobalHandler>);
    static get globalInstanceProvider(): () => Promise<EpsilonGlobalHandler>;
    private handlers;
    constructor(_epsilon: EpsilonInstance);
    static configureDefaultLogger(overrides?: LoggerOptions): void;
    get defaultLoggerInstance(): LoggerInstance;
    get epsilon(): EpsilonInstance;
    processSingleBackgroundByParts<T>(type: string, data?: T, overrideTraceId?: string, overrideTraceDepth?: number): Promise<boolean>;
    processSingleBackgroundEntry(e: BackgroundEntry<any>, overrideTraceId?: string, overrideTraceDepth?: number): Promise<boolean>;
    lambdaHandler(event: any, context: Context): Promise<any>;
    innerLambdaHandler(event: any, context: Context): Promise<any>;
    static defaultProcessUncaughtError(event: any, context: Context, err: any): Promise<ProxyResult>;
}
