import type { ExperimentClient } from '../experiments/types';
import { type OverlayRecipeFetcher } from '../overlays/fetcher';
import type { CanvasRecipe } from '../overlays/types';
import type { SmartCanvasRuntime } from '../runtime';
import type { TelemetryClient } from '../telemetry/types';
export type OverlayRecipesFetcher = () => Promise<CanvasRecipe[] | CanvasRecipe | undefined>;
export interface UseCanvasOverlaysOptions {
    fetcher?: OverlayRecipeFetcher;
    /** Fetcher that returns multiple recipes */
    recipesFetcher?: OverlayRecipesFetcher;
    configUri?: string;
    featureKey?: string;
    credentials?: RequestCredentials;
    experiments?: ExperimentClient;
    telemetry?: TelemetryClient;
    /** v2 Runtime for EventBus publishing */
    runtime?: SmartCanvasRuntime;
    canvasHost?: HTMLElement | null;
}
export declare function useCanvasOverlays({ fetcher, recipesFetcher, configUri, featureKey, credentials, experiments, telemetry, runtime, canvasHost, }: UseCanvasOverlaysOptions): void;
