import { EditorProperties, Infer } from "@iplusplus/y-model"; import { AnchorProp, Control, ControlData, ControlFactory, ControlMeta, ControlTypeInfo, DesignerApi, GroupControlAttchInfo, PageApi, Size } from "./types"; import * as createjs from "createjs-module"; type TypedControlConstructor

= { new (propDefine: P, controlTypeInfo: ControlTypeInfo, data?: ControlData): TypedControl

; typeName: string; title: string; }; export declare function createControlFactory

(propDefine: P, ctor: TypedControlConstructor

): ControlFactory; export declare abstract class TypedControl

implements Control { protected props: P; controlTypeInfo: ControlTypeInfo; protected controlData?: ControlData | undefined; p: Infer

; size: Size; api?: DesignerApi | PageApi; metaInfo?: ControlMeta; container: createjs.Container; destroyCallback: (() => void)[]; anchored: AnchorProp; destroyed: boolean; isLocked: boolean; customName?: string; abstract getDefaultSize(): Size; /** * */ constructor(props: P, controlTypeInfo: ControlTypeInfo, controlData?: ControlData | undefined); getProperty(propertyName: string): unknown; groupControlAttchInfo?: GroupControlAttchInfo | undefined; initControl(api: DesignerApi | PageApi): void; assembleComponents(): void; updateDefaultProps(): void; isInPage(api?: DesignerApi | PageApi): api is PageApi; startRun(): void; getDefaultMeta(): ControlMeta; setMeta(metaInfo: ControlMeta): void; getMeta(): ControlMeta; private loadControlData; getControlData(): ControlData; abstract reDraw(): void; setProperty(newProperties: { [index: string]: unknown; }): void; inPage(): PageApi | undefined; inDesign(): DesignerApi | undefined; run(_pageApi: PageApi): void; getDisplayObject(): createjs.Container; getProperties(): EditorProperties; protected addDestroyCallback(cb: () => void): void; protected callDestroyCallback(): void; destroy(): void; } export {};