import type { PortalHandle, PortalLayerProps } from '../types/node.type.js';
/**
 * React hook for imperative portal control.
 * Provides methods to open, update, and close portals from within the component tree.
 * Must be used within a `PortalProvider`.
 * @template T The type of data to be synchronized with the portal.
 * @param data Optional data to keep in sync with the most recently opened portal.
 * If provided, any changes to this data will automatically call `updateData`.
 * @returns An object with:
 * - `open(Component, initialData?)` — opens a portal layer and returns a PortalHandle
 * - `updateData(next)` — pushes new data to the most recently opened portal
 * - `close()` — closes the most recently opened portal
 * - `handle` — ref to the current PortalHandle
 * @example
 * ```ts
 * // With auto-sync
 * const [count, setCount] = useState(0)
 * const portal = usePortal({ count, setCount })
 *
 * const handleOpen = () => {
 *   portal.open(MyContent, { count, setCount })
 * }
 *
 * // Without auto-sync
 * const portal = usePortal()
 * ```
 */
export declare function usePortal<T = any>(data?: T): {
    open: <P = T>(Component: React.ComponentType<PortalLayerProps<P>>, initialData?: P) => PortalHandle<P>;
    updateData: <T_1>(next: T_1) => void;
    close: () => void;
    handle: import("react").RefObject<PortalHandle<any> | null>;
};
//# sourceMappingURL=usePortal.d.ts.map