import type * as CoreRemote from '../core/Remote.js';
/** Monitors element visibility using IntersectionObserver v2. */
export declare function useEnsureVisibility(remote: CoreRemote.Remote, options?: useEnsureVisibility.Options): useEnsureVisibility.ReturnType;
/** React hook to select state from a remote context's store. */
export declare function useState(remote: CoreRemote.Remote): CoreRemote.State;
export declare function useState<selected>(remote: CoreRemote.Remote, selector: (state: CoreRemote.State) => selected): selected;
/** Applies theme overrides from URL search params and live messenger updates. */
export declare function useTheme(remote?: CoreRemote.Remote | undefined): void;
export declare namespace useEnsureVisibility {
    type Options = {
        /** Whether visibility monitoring is enabled. @default true */
        enabled?: boolean | undefined;
        /**
         * Override how the popup switch is requested when the element is
         * occluded (e.g. a wata session notification). @default Sends the
         * bespoke `switch-mode` message through the remote messenger.
         */
        invokePopup?: (() => void) | undefined;
        /**
         * Override the consumer origin used for the trusted-host check (e.g.
         * a wata session's pinned origin). @default The remote store origin.
         */
        origin?: string | undefined;
    };
    type ReturnType = {
        /** Requests the host switch to a popup dialog. */
        invokePopup: () => void;
        /** Ref to attach to the element being monitored. */
        ref: React.RefObject<HTMLDivElement | null>;
        /** Whether the element is currently visible. */
        visible: boolean;
    };
}
//# sourceMappingURL=Remote.d.ts.map