import type { ReactiveController, ReactiveControllerHost } from 'lit'; /** * Reactive controller that tracks whether one or more slots have content, and * requests a host update whenever that changes. Lets a template react to empty * slots — e.g. collapse a footer row when nothing is slotted into it. * * Drives this off `slotchange` rather than a CSS selector because * `:host(:has(> [slot='name']))` is invalid (`:has()` can't be nested inside * `:host()`, so browsers drop the whole rule). Pair it with a data-attribute: * * ```ts * private _slots = new HasSlotController(this, 'footer'); * * render() { * return html` * * `; * } * ``` * * Pass `'[default]'` to test the default (unnamed) slot. */ export declare class HasSlotController implements ReactiveController { private host; private slotNames; constructor(host: ReactiveControllerHost & Element, ...slotNames: string[]); /** Whether the given slot currently has content. Use `'[default]'` for the default slot. */ test(slotName: string): boolean; private hasNamedSlot; private hasDefaultSlot; private handleSlotChange; hostConnected(): void; hostDisconnected(): void; } //# sourceMappingURL=has-slot-controller.d.ts.map