import type { CustomElement } from '../../Components/Abstracts/CustomElement'; import { ControllerBase } from './ControllerBase'; /** * The config options for the `ElementController`. * * @public */ export interface IElementControllerConfig { queries?: Record; } export interface IElementFacade { readonly name: string; } /** * The abstract `ElementController` class. * * @public * @abstract */ export declare abstract class ElementController extends ControllerBase { private readonly _config; /** * Constructs a new instance of the `ElementController` class. * * @public */ constructor(host: CustomElement, config: IElementControllerConfig); /** * Abstract method to get a typed element with `TWrapper` functionality. * * @public * @abstract * @param name - The name of the element. * @returns An element of type `TWrapper`, or `null` if not und. */ get(name: string): TElementFacade | null; /** * Abstract method to get a typed element with `TWrapper` functionality asynchronously. * * @public * @param name - The name of the element. * @returns A promise that resolves with an element of type `TWrapper`, or `null` if not und. */ getAsync(name: string): Promise; /** * Abstract method to map an element to a `TWrapper` type. * * @public * @abstract * @param element - The element to map. * @returns An element of type `TWrapper */ protected abstract map(element: TElement): TElementFacade; /** * @private */ private tryQueryElement; /** * @private */ private tryQueryElementAsync; } //# sourceMappingURL=ElementController.d.ts.map