/** Channels that stay global: they change rarely and invalidate every frame. */ export declare function useGlobalPreviewChannels(): { appOrigin: string; previewRevision: string; environmentControlRevision: number; }; /** * Channels scoped to one frame. Artifact events arrive under two key spaces — * the recipe cache key and the frame identity — so both are subscribed; a * whole-store event bumps an epoch inside every version getter. cacheHydrated * composes the canvas-wide prehydration flag with this frame's own keys and is * kept fresh by the per-key snapshot subscription. */ export declare function useFrameKeyChannels(keys: { pageId: string; routePreviewKey: string; authoredRoutePreviewKey: string; canonicalId: string; fingerprint: string | null; /** The batched prehydration flag; defaults to false until the caller threads it. */ batchHydrated?: boolean; }): { artifactRevision: number; previewIntended: boolean; cacheHydrated: boolean; };