import { ControllerBase, type ControllerHost } from '../../../Controllers/Abstracts/ControllerBase'; /** * Represents the `IProjectionControllerConfig` type. * * @public */ export interface IProjectionControllerConfig { /** * Optional name of the slot in the host. Default is unnamed slot. */ slotName?: string; /** * CSS selector to find the projection target inside the portal. * This is where the projected content will be rendered. */ targetSelector: string; /** * Optional callback that is called when elements are projected. * It receives the array of projected elements. */ projecting?: (element: HTMLElement) => void; } /** * A controller that observes content projected into a slot in the host, * removes the DOM nodes from the host, and transfers them into a render target * inside a portal component. * * @public */ export declare class ProjectionController extends ControllerBase { private readonly _slotController; private readonly _slotName; private readonly _targetSelector; private readonly _observer; private readonly _elements; private readonly _projectingFn?; private readonly _portalAttachedHandler; private _portal; constructor(host: ControllerHost, options: IProjectionControllerConfig); /** * Returns projected elements. * * @public */ get elements(): Array; /** * @public * @override */ hostFirstUpdated(): void; /** * @public * @override */ hostDisconnected(): void; /** * Sets up the portal attached event listener. * * @private */ private setupPortalListener; /** * Cleans up the portal attached event listener. * * @private */ private cleanupPortalListener; /** * @private */ private projectContent; /** * Gets elements from the host's light DOM that match the slot name. * * @private */ private getLightDomElements; } //# sourceMappingURL=ProjectionController.d.ts.map