import type { ExperimentClient } from '../experiments/types';
import type { SmartCanvasRuntime } from '../runtime';
import type { ActionStep, CanvasConfigFetcher, CanvasThemeConfig, LauncherConfig, TileConfig } from '../types';
export interface UseShadowCanvasConfigOptions {
    fetcher: CanvasConfigFetcher;
    /** @deprecated Use runtime instead */
    experiments?: ExperimentClient;
    /** v2 Runtime for activation-based filtering */
    runtime?: SmartCanvasRuntime;
    /** Current page URL — triggers re-filter when URL changes (route-based activation).
     *  Full URL (not just pathname) so hash-based routing also triggers re-filter. */
    pageUrl?: string;
    /** Polling interval in milliseconds. Set to 0 or omit to disable polling. */
    pollIntervalMs?: number;
}
export interface ShadowCanvasConfigState {
    tiles: TileConfig[];
    isLoading: boolean;
    error?: string;
    fetchedAt?: string;
    canvasTitle?: string;
    configVersion?: string;
    /** Actions to execute (tooltips, highlights, DOM changes, etc.) */
    actions: ActionStep[];
    displayMode?: 'standard' | 'focused';
    /** Theme configuration from the canvas config (workspace settings) */
    theme?: CanvasThemeConfig;
    /** Launcher button configuration */
    launcher?: LauncherConfig;
}
export declare function useShadowCanvasConfig({ fetcher, experiments, runtime, pageUrl, pollIntervalMs, }: UseShadowCanvasConfigOptions): ShadowCanvasConfigState;
