import { ControllerBase, type ControllerHost } from './Abstracts/ControllerBase'; /** * Represents the `ISlotControllerConfig` interface. * * @public */ export interface ISlotControllerConfig { callback?: (slotName?: string) => void; } /** * The `SlotController` class is a reactive controller that provides a set of methods to work with slots. * * @public */ export declare class SlotController extends ControllerBase { private readonly _slotChangeCallback?; private readonly _mutationObserver; private _slotChangeSubscription; /** * Constructs a new instance of the `SlotController` class. * * @public */ constructor(host: ControllerHost, config?: ISlotControllerConfig); /** * @public * @override */ hostConnected(): void; /** * @public * @override */ hostDisconnected(): void; /** * Returns the assigned nodes of the slot. * If the slot name is not provided, the default slot is used. * * @public * @param slotName - The optional slot name. */ getAssignedNodes(slotName?: string): Array; /** * Returns the nodes of the slot. * If the slot name is not provided, the default slot is used. */ getNodes(slotName?: string): Array; /** * Returns a boolean indicating whether the slot has assigned nodes. * If the slot name is not provided, the default slot is used. * * @public * @param slotName - The optional slot name. */ hasAssignedNodes(slotName?: string): boolean; /** * Returns a boolean indicating whether the slot has nodes. * If the slot name is not provided, the default slot is used. */ hasNodes(slotName?: string): boolean; /** * Returns a boolean indicating whether the slot has assigned content. * If the slot name is not provided, the default slot is used. * * @public * @param slotName - The optional slot name. */ hasAssignedContent(slotName?: string): boolean; /** * Returns a boolean indicating whether the slot has content. * If the slot name is not provided, the default slot is used. * * @public * @param slotName - The optional slot name. */ hasContent(slotName?: string): boolean; /** * Returns the assigned elements of the slot. * If the slot name is not provided, the default slot is used. * * @public * @param slotName - The optional slot name. */ getAssignedElements(slotName?: string): Array; /** * Returns the elements of the slot. * If the slot name is not provided, the default slot is used. */ getElements(slotName?: string): Array; /** * Returns a boolean indicating whether the slot has assigned elements. * If the slot name is not provided, the default slot is used. * * @public * @param slotName - The optional slot name. */ hasAssignedElements(slotName?: string): boolean; /** * Returns a boolean indicating whether the slot has elements. * If the slot name is not provided, the default slot is used. * * @public * @param slotName - The optional slot name. */ hasElements(slotName?: string): boolean; /** * Returns a boolean indicating whether the slot has assigned text content. * If the slot name is not provided, the default slot is used. * * @public * @param slotName - The slot name. */ hasSlot(slotName: string): boolean; /** * @private */ private extractNodesFromSlot; /** * @private */ private extractNodesFromChildren; /** * @private */ private handleChange; /** * @private */ private handleMutation; } /** * Adds a slot controller to the given host. * * @public * @param host The host element. * @param config The optional configuration options. * @returns The slot controller instance. */ export declare function addSlotController(host: ControllerHost, config?: ISlotControllerConfig): SlotController; //# sourceMappingURL=SlotController.d.ts.map