import type { ResponseDescription } from '../http/output/response/ResponseDescription';
import type { OperationHttpHandlerInput } from '../server/OperationHttpHandler';
import { OperationHttpHandler } from '../server/OperationHttpHandler';
import type { ProviderFactory } from './configuration/ProviderFactory';
import type { CookieStore } from './interaction/account/util/CookieStore';
import type { InteractionHandler } from './interaction/InteractionHandler';
export interface IdentityProviderHttpHandlerArgs {
    /**
     * Used to generate the OIDC provider.
     */
    providerFactory: ProviderFactory;
    /**
     * Used to determine the account of the requesting agent.
     */
    cookieStore: CookieStore;
    /**
     * Handles the requests.
     */
    handler: InteractionHandler;
}
/**
 * Generates the active Interaction object if there is an ongoing OIDC interaction.
 * Finds the account ID if there is cookie metadata.
 *
 * Calls the stored {@link InteractionHandler} with that information and returns the result.
 */
export declare class IdentityProviderHttpHandler extends OperationHttpHandler {
    protected readonly logger: import("global-logger-factory").Logger<unknown>;
    private readonly providerFactory;
    private readonly cookieStore;
    private readonly handler;
    constructor(args: IdentityProviderHttpHandlerArgs);
    handle({ operation, request, response }: OperationHttpHandlerInput): Promise<ResponseDescription>;
}
