import type { ContentSlotEntry, DetailsSlotEntry, HeaderSlotEntry, SidebarSlotEntry } from './slot-config.js'; /** @internal */ export interface SlotRegistryState { header: HeaderSlotEntry | null; sidebar: SidebarSlotEntry | null; content: ContentSlotEntry | null; details: DetailsSlotEntry | null; } /** * Identity of the element that currently holds a slot. Compared by reference, * so each slot component must hold one value for its whole lifetime. * * @internal */ export type SlotOwner = object; /** @internal */ export interface SlotRegistry { subscribe: (listener: () => void) => () => void; getSnapshot: () => SlotRegistryState; register: (slot: K, entry: NonNullable, owner: SlotOwner) => void; unregister: (slot: keyof SlotRegistryState, owner: SlotOwner) => void; } /** @internal */ export declare function createSlotRegistry(): SlotRegistry; //# sourceMappingURL=slot-registry.d.ts.map