/**
 * 滤镜 sdk
 *
 * @note 一般需要创建多个窗口和多个实体
 * 如果有需要，则需要保存下 windowId， entityId，用来销毁和管理资源
 * 一个对于目前的使用场景仅仅需要一个实体
 */
export default class Illusion implements Illusion.Illusion {
    illusionModule: any;
    canvas: HTMLCanvasElement;
    initModule(): any;
    initStage(left: number, top: number, width: number, height: number, zipFilePath: string, debug: Boolean): void;
    createWindow(): any;
    setWindowRect(windowId: number, left: number, top: number, width: number, height: number): void;
    destroyWindow(windowId: number): any;
    createEntity(windowId: number): any;
    setEntityRect(entityId: number, left: number, top: number, right: number, bottom: number): void;
    setEntityTexture(entityId: number, filePath: string, rotation?: number, x?: number, y?: number, width?: number, height?: number): void;
    destroyEntity(entityId: number): any;
    clearContext(): void;
    createWebGLContext(width: number, height: number, id: string, parent?: HTMLElement): WebGLRenderingContext;
    getContext(): CanvasRenderingContext2D;
    addEntityFilter(entityId: number, preIndex: string, filePath: string, filter: string): void;
    removeEntityFilter(entityId: number, preIndex: string): void;
    setEntityFilter(entityId: number, filePath: string, filter: string): void;
    decJsonFile(filePath: string): any;
    updateEntityFilter(entityId: number, preIndex: string, filterIndex: string, filterString: string): void;
    updateFilterStrongValue(entityId: number, strong: number): void;
    unCompressZip(file: File): Promise<any[]>;
    createFolder(parent: string | undefined, dir: string): string | null;
    setEntityBlend(entityId: number, fs: string, vs: string): void;
    updateBlendParameterValue(entityId: number, json: string): void;
    writeFileToMemory(buffer: ArrayBuffer, dir: any): string;
    readFile(filePath: string): any;
    encryptFile(srcPath: string, dstPath: string): void;
    setEntityZOrder(entityId: number, order: number): void;
    setEntityVisible(entityId: number, visible: boolean): void;
    destroyAllResource(): void;
    destroy(): void;
    renderFrame(currentClockMS: number): void;
}
