import { type ReactNode } from 'react';
import type { BatchActionHandle } from './actions/types';
import { type CanvasTheme } from './components/ShadowCanvasOverlay';
import type { SmartCanvasController } from './controller';
import type { ExperimentClient } from './experiments/types';
import type { SmartCanvasRuntime } from './runtime';
import type { TelemetryClient } from './telemetry/types';
import type { CanvasConfigFetcher } from './types';
export interface SmartCanvasAppProps {
    controller: SmartCanvasController;
    fetcher?: CanvasConfigFetcher;
    configUri?: string;
    configUriFeatureKey?: string;
    configFeatureKey?: string;
    fetchCredentials?: RequestCredentials;
    pollIntervalMs?: number;
    experiments?: ExperimentClient;
    telemetry?: TelemetryClient;
    /** v2 Runtime instance for context, events, state, and decisions */
    runtime?: SmartCanvasRuntime;
    /** @deprecated Actions replace overlay recipes. Use config.actions instead. */
    overlayFetcher?: () => Promise<unknown>;
    /** @deprecated Actions replace overlay recipes. Use config.actions instead. */
    overlayConfigUri?: string;
    /** @deprecated Actions replace overlay recipes. Use config.actions instead. */
    overlayConfigFeatureKey?: string;
    /** @deprecated Actions replace overlay recipes. Use config.actions instead. */
    overlayFetchCredentials?: RequestCredentials;
    footerSlot?: ReactNode;
    launcherLabel?: string;
    canvasHost?: HTMLElement | null;
    theme?: Partial<CanvasTheme>;
    /** Batch handle from eager action application in createSmartCanvas(). Prevents double-apply. */
    initialBatchHandle?: BatchActionHandle | null;
}
export declare function SmartCanvasApp({ controller, fetcher, configUri, configUriFeatureKey, configFeatureKey, fetchCredentials, pollIntervalMs, experiments, telemetry, runtime, overlayFetcher, overlayConfigUri, overlayConfigFeatureKey, overlayFetchCredentials, footerSlot, launcherLabel, canvasHost, theme, initialBatchHandle, }: SmartCanvasAppProps): import("react/jsx-runtime").JSX.Element;
