import type { AnimationOptions } from 'motion';
/**
 * Snapshot stored for a layoutId when an element unmounts.
 */
type LayoutIdEntry = {
    rect: DOMRect;
    transition?: AnimationOptions;
};
/**
 * Registry that stores last-known rect + transition for each layoutId.
 *
 * - `snapshot(id, rect, transition)` — called when an element with a layoutId unmounts.
 * - `consume(id)` — called by a newly mounted element. Returns and **deletes** the entry (one-shot).
 */
export type LayoutIdRegistry = {
    snapshot(id: string, rect: DOMRect, transition?: AnimationOptions): void;
    consume(id: string): LayoutIdEntry | undefined;
};
export declare const layoutIdRegistry: LayoutIdRegistry;
/**
 * Get the global layoutId registry.
 *
 * @returns The singleton `LayoutIdRegistry` instance.
 *
 * @example
 * ```ts
 * const registry = getLayoutIdRegistry()
 * registry.snapshot('hero', element.getBoundingClientRect())
 * const entry = registry.consume('hero') // one-shot: returns and deletes
 * ```
 */
export declare const getLayoutIdRegistry: () => LayoutIdRegistry;
export {};
