declare module 'codeeffects' { export namespace $rule { interface Control { clear(): void; dispose(): void; extract(): string; setCallbacks( loadRule: (ruleId: string) => void, deleteRule: (ruleId: string) => void, saveRule: () => void, notify: (message: string, type: string) => void ): void; loadSettings(sourceData: string): void; loadRule(ruleData: string): void; loadInvalids(invalidData: string): void; getRuleId(): string; isEvaluationType(): boolean; saved(id: string): void; deleted(id: string): void; isAltered(): boolean; isEmpty(includeFormattingElements: boolean): boolean; redraw(): void; disable(): void; enable(): void; onBlur(callback: () => void): void; onFocus(callback: () => void): void; //init(settings: string): void; //load(items: any): void; //invalid(items: any): void; //valid(): void; //post(): void; } function init(editorData: any): Control; namespace Context { interface Item { id: string; ref: Control; } var controls: Item[]; function addControl(id: string, ref: Control): void; function controlExists(id: string): boolean; function getControl(id: string): Control | null; function removeControl(id: string): void; function clear(): void; } } }