import { PropType } from "./Types"; /** * Base class for components. */ export type ComponentSchemaProp = { default?: any; type: PropType; }; export type ComponentSchema = { [propName: string]: ComponentSchemaProp; }; export class Component { static schema: ComponentSchema; static isComponent: true; constructor(props?: Partial>> | false); copy(source: this): this; clone(): this; reset(): void; dispose(): void; } export interface ComponentConstructor> { schema: ComponentSchema; isComponent: true; new (props?: Partial>> | false): C; }