;
_isPatching?: boolean;
[key: string]: any;
}
/**
* Create slots object from children and slots prop.
* Uses a version signal to trigger re-renders when children change.
*
* A slot reads as a callable accessor **only when content was provided** for
* it; an unprovided slot — `default` included — reads as `undefined`. So
* presence is a plain truthiness/optional-call check (`slots.header?.()`,
* `slots.header?.() ?? fallback`), and presence stays reactive: the accessor
* lookup reads the version signal, so a slot appearing or disappearing
* re-renders the consumer.
*
* Supports named slots via:
* - `slots` prop object (e.g., `slots={{ header: () => ...
}}`) —
* the typed form, checked against the consumer's declared slots, and the
* only way to fill a named slot with a component
* - `slot` prop on HOST-ELEMENT children (e.g., `...
`,
* mirroring the HTML attribute); on a component child `slot` is an ordinary
* prop and does not route (see {@link namedSlotFor}, #588)
*
* A **function child** is a render-prop fill: it is invoked with the scoped
* props the consumer passed to the accessor, and its result takes its place.
* Function and element children may be mixed freely in one default slot —
* every function is invoked with the same scoped props and element children
* pass through, in source order — so a slot is not all-or-nothing about the
* form its content takes. A function only ever fills the DEFAULT slot: routing
* a child to a named slot requires a `slot` prop on it, and a function is not
* an object, so it can never be routed there.
*
* @example
* ```tsx
* // Parent component
* Title
}}>
* Default content
* Footer text
*
*
* // Card component setup
* const slots = createSlots(children, slotsFromProps);
* return () => (
*
* {slots.header?.() ??
Fallback heading
}
* {slots.default?.()}
* {slots.footer?.()}
*
* );
* ```
*/
export declare function createSlots(children: any, slotsFromProps?: Record): InternalSlotsObject;
//# sourceMappingURL=slots.d.ts.map