import { Context } from '@azure/functions';
import { B as BinarySettings, S as ServerlessHandler } from '../../handler.contract-D9QyTfDX.cjs';
import { A as AdapterContract, R as ResolverContract } from '../../adapter.contract-Cp2Jsh5V.cjs';
import { F as FrameworkContract } from '../../framework.contract-td-lRvq6.cjs';
import { I as ILogger } from '../../logger-F8qccesk.cjs';
import { DefaultHandler } from '../default/index.cjs';
import '../../headers-DjfGHDmI.cjs';
import 'http';
import 'node:http';
import '../../base-handler-B6soYcRl.cjs';
import '../../request-DsBcr1WD.cjs';

/**
 * The options to customize {@link AzureHandler}
 *
 * @breadcrumb Handlers / AzureHandler
 * @public
 */
interface AzureHandlerOptions {
    /**
     * Indicates to use the context log instead console.log when logger is internal (created by the library)
     *
     * @defaultValue true
     */
    useContextLogWhenInternalLogger: boolean;
}
/**
 * The class that implements a serverless handler for Azure Function.
 *
 * When you don't specify a custom logger, the {@link Context} logger is used instead.
 *
 * @breadcrumb Handlers / AzureHandler
 * @public
 */
declare class AzureHandler<TApp, TEvent, TCallback, TResponse, TReturn> extends DefaultHandler<TApp, TEvent, Context, TCallback, TResponse, TReturn> {
    protected readonly options?: AzureHandlerOptions | undefined;
    /**
     * Default Constructor
     */
    constructor(options?: AzureHandlerOptions | undefined);
    /**
     * {@inheritDoc}
     */
    getHandler(app: TApp, framework: FrameworkContract<TApp>, adapters: AdapterContract<TEvent, Context, TResponse>[], resolverFactory: ResolverContract<TEvent, Context, TCallback, TResponse, TReturn>, binarySettings: BinarySettings, respondWithErrors: boolean, log: ILogger): ServerlessHandler<TReturn>;
    /**
     * Get the {@link ILogger} instance from logger of the context
     *
     * @param context - The Azure Context
     */
    protected createLoggerFromContext(context: Context): ILogger;
}

export { AzureHandler, type AzureHandlerOptions };
