import { Collection, controlAttribute, styleKeys } from "../core"; import { ElementTypes } from "../core/controlAttribute"; import { controlStyle } from "../core/controlStyle"; import { Directive } from "../directive"; import { IApplicationService } from "./IApplicationService"; import { IClass } from "./IAttribute"; export interface baseeventargs { data: any; field: string; source: string; } export interface ControlProps { props?: Props; settings?: any; oncreating?: (sender: caller) => any; oncreated?: (sender: caller) => any; onbuilding?: (sender: caller) => any; onbuilded?: (sender: caller) => any; ondisposing?: (sender: caller) => any; ondisposed?: (sender: caller) => any; onconfig?: (sender: caller) => any; setup?: (sender: caller) => any; view?(context: caller): any; onshow?(sender: caller): void; onhide?(sender: caller): void; onupdating?(sender: caller, e: baseeventargs): void; onupdated?(sender: caller, e: baseeventargs): void; } export interface ControlOptions { settings?: any; oncreating?: (sender: caller) => any; oncreated?: (sender: caller) => any; onbuilding?: (sender: caller) => any; onbuilded?: (sender: caller) => any; ondisposing?: (sender: caller) => any; ondisposed?: (sender: caller) => any; onconfig?: (sender: caller) => any; setup?: (sender: caller) => any; } export type baseemits = "onbuilded" | "onbuilding" | "onconfig" | "oncreating" | "oncreated" | "ondisposing" | "ondisposed" | "onmounted" | String | Symbol; export interface IControl extends ControlProps, ControlProps { props?: Props; bind: Directive; isFragment: boolean; keepAlive: boolean; reload?: (() => caller) | undefined; context: IApplicationService; controls: Collection>; parent: IControl; element: ElementType; build(target?: any): any; dispose(cb?: any): Promise; flush(): any; clear(): any; show(): any; hide(): any; signal(eventName: string | symbol, cb: (...args: any[]) => any, ...initialValues: any[]): any; on(event: baseemits, callback: (sender: any, ...args: any[]) => void, domEvent: boolean): any; off(event: baseemits, callback: (sender: any, ...args: any[]) => void, domEvent: boolean): any; invoke(event: baseemits, ...args: any[]): any; addHandler(event: string, callback: (e: Event, sender: IControl) => any): IControl; removeHandler(event: string): IControl; attr: controlAttribute; class: IClass; isRendered: boolean; isDisposed: boolean; isConnected: boolean; style(properties: styleKeys): IControl; autostyle: controlStyle; view?(context: caller): any; using(waitable: Promise, onfulfilled?: ((value: T) => T | PromiseLike) | undefined | null, onrejected?: ((reason: any) => never | PromiseLike) | undefined | null): any; useModel(model: T): T; useModel(model: object): any; getView(viewname: Promise, model: any): Promise; $(selector: string): any; onshow?(sender: caller): void; onhide?(sender: caller): void; onChildAdded?(sender: this, child: IControl, index: number): any; onChildRemoved?(sender: this, child: IControl): any; }