import type { ConfigTargetingRequest } from "../generated-proto/pb_schema/cdp/cof/config_request";
import type { ConfigTargetingResponse } from "../generated-proto/pb_schema/cdp/cof/config_response";
import type { RequestStateEventTarget } from "../handlers/requestStateEmittingHandler";
import type { CameraKitConfiguration } from "../configuration";
import type { MetricsClient } from "../clients/metricsClient";
export interface Metadata {
    [key: string]: string;
}
export declare const COF_REQUEST_TYPE = "cof";
export type CofDimensions = {
    requestType: typeof COF_REQUEST_TYPE;
    delta: string;
};
/**
 * Handler chain used to make COF requests. Uses the COF client to perform the
 * requests, with retries, timeout, and caching.
 *
 * The handler will first attempt to retrieve the COF response from cache. If it is found, the result is returned
 * immediately and the cache is updated in the background. If no response is found, a COF request is made. This request
 * will retry (with exponential backoff + jitter) for 5 seconds before returning an error to the caller.
 */
export declare const cofHandlerFactory: {
    (args_0: CameraKitConfiguration, args_1: RequestStateEventTarget, args_2: MetricsClient): import("../handlers/HandlerChainBuilder").Handler<Partial<ConfigTargetingRequest>, ConfigTargetingResponse, Metadata & {
        signal?: AbortSignal | null | undefined;
        isSideEffect?: boolean | undefined;
    }>;
    token: "cofHandler";
    dependencies: readonly ["configuration", "requestStateEventTarget", "metricsClient"];
};
//# sourceMappingURL=cofHandler.d.ts.map