export declare const POSTHOG_REPLAY_SNAPSHOT_REQUEST = "posthog:replay:request-full-snapshot"; interface PostHogRrweb { record: { takeFullSnapshot?: () => void; }; } type PostHogReplayMessageListener = (event: { data: unknown; source: unknown; }) => void; interface PostHogReplayWindow { readonly parent: unknown; readonly frames: ArrayLike<{ postMessage: (message: string, targetOrigin: string) => void; }>; readonly __PosthogExtensions__?: { rrweb?: PostHogRrweb; }; addEventListener(type: "message", listener: PostHogReplayMessageListener): void; removeEventListener(type: "message", listener: PostHogReplayMessageListener): void; setTimeout(listener: () => void, timeout: number): number; clearTimeout(timeoutId: number): void; } declare global { interface Window { __PosthogExtensions__?: { rrweb?: PostHogRrweb; }; } } export declare function requestChildPostHogReplaySnapshots({ targetWindow, }: { targetWindow: PostHogReplayWindow; }): void; export declare function startPostHogReplaySnapshotCascade({ isRecordingStarted, targetWindow, onReady, }: { isRecordingStarted: () => boolean; targetWindow: PostHogReplayWindow; onReady?: () => void; }): () => void; export declare function startChildPostHogReplaySnapshotRelay({ isRecordingStarted, targetWindow, }: { isRecordingStarted: () => boolean; targetWindow: PostHogReplayWindow; }): () => void; export {};