import { BaseComponent } from '../components/base.component'; import { Expander } from '../code/expander/expander'; import { IExpander } from '../code/expander/iexpander'; import { BaseDirective } from '../code/basedirective'; import { Events_Symbol_Eventlist, CustomElement_Symbol_Selector } from '../consts/decorator.props'; /** @internal */ export type ComponentType = new (...args: any[]) => T; export type DirectiveType = new (...args: any[]) => T; /** @internal */ export interface IComponent extends ComponentType { readonly [CustomElement_Symbol_Selector]?: string; readonly [Events_Symbol_Eventlist]?: string[]; } /** @internal */ export interface IDirective extends DirectiveType { setup: () => void; } /** @internal */ export type ExpandersType = new () => T; /** @internal */ export interface IExpanderInstance extends ExpandersType { readonly expandAttr?: string; }