/** * @license * Copyright 2023 Nuraly, Laabidi Aymen * SPDX-License-Identifier: MIT */ import { LitElement } from 'lit'; /** * Interface for components that need dependency validation */ export interface DependencyAware { requiredComponents: string[]; validateDependencies(): void; isComponentAvailable(componentName: string): boolean; } type Constructor = new (...args: any[]) => T; /** * Mixin that adds dependency validation functionality to LitElement components * * @param superClass - The base class to extend (typically LitElement) * @returns Enhanced class with dependency validation capabilities * * @example * ```typescript * @customElement('my-component') * export class MyComponent extends DependencyValidationMixin(LitElement) { * requiredComponents = ['nr-icon', 'hy-tooltip']; * * override connectedCallback() { * super.connectedCallback(); * this.validateDependencies(); * } * } * ``` */ export declare const DependencyValidationMixin: >(superClass: T) => Constructor & T; export {}; //# sourceMappingURL=dependency-mixin.d.ts.map