import { QspAPI, QspVariableType } from '../contracts/api'; import { QspPanel, QspListItem } from '../contracts/common'; import { QspEvents, QspEventLogger } from '../contracts/events'; import { Ptr, QspWasmModule, StringPtr } from '../contracts/wasm-module'; export declare class QspAPIImpl implements QspAPI { private module; private listeners; private variableWatchers; private variableValues; private eventLogger; private time; private staticStrings; constructor(module: QspWasmModule); on(event: E, listener: QspEvents[E]): void; off(event: E, listener: QspEvents[E]): void; registerEventLogger(logger: QspEventLogger): void; watchVariable(name: Name, callback: (value: QspVariableType) => void): () => void; watchVariableByIndex(name: Name, index: number, callback: (value: QspVariableType) => void): () => void; watchVariableByKey(name: Name, key: string, callback: (value: QspVariableType) => void): () => void; private emit; openGame(data: ArrayBuffer, isNewGame: boolean): void; saveGame(): ArrayBuffer | null; loadSave(data: ArrayBuffer): void; restartGame(): void; selectAction(index: number): void; execSelectedAction(): void; selectObject(index: number): void; version(): string; getStaticStringPointer(name: string): Ptr; readVariable(name: Name, useCache?: boolean): QspVariableType; readVariableByIndex(name: Name, index: number, useCache?: boolean): QspVariableType; readVariableByKey(name: Name, key: string, useCache?: boolean): QspVariableType; readVariableSize(name: string): number; execCode(code: string, isRefresh?: boolean): void; execCounter(): void; execLoc(name: string): void; updateUserInput(code: string): void; enableDebugMode(): void; disableDebugMode(): void; getLocationsList(): string[]; getLocationActions(name: string): QspListItem[]; getLocationCode(name: string): string[]; getActionCode(location: string, index: number): string[]; calculateStringExpression(expression: string): string; calculateNumericExpression(expression: string): number | null; showWindow(type: number, show: boolean): void; getSelectedActionIndex(): number; getSelectedObjectIndex(): number; getCompiledDateTime(): string; getErrorDescription(errorNum: number): string; getLocationDescription(name: string): string; private init; private registerCallbacks; private registerCallback; onError: () => void; onRefresh: (isForced: boolean, isNewDesc: boolean) => void; onShowWindow: (type: QspPanel, isShown: boolean) => void; onMenu: (listPtr: Ptr, count: number) => void; onMsg: (textPtr: StringPtr) => void; onInput: (textPtr: StringPtr, retPtr: Ptr, maxSize: number) => void; onVersion: (textPtr: StringPtr, retPtr: Ptr, maxSize: number) => void; onWait: (ms: number) => void; onSetTimer: (ms: number) => void; onSetUserInput: (textPtr: StringPtr) => void; onView: (pathPtr: StringPtr) => void; onDebug: (strPtr: StringPtr) => void; onSystemCmd: (strPtr: StringPtr) => void; onGetMS: () => number; onOpenGame: (pathPtr: StringPtr, isNewGame: boolean) => void; onOpenGameStatus: (pathPtr: StringPtr) => void; onSaveGameStatus: (pathPtr: StringPtr) => void; onIsPlay: (filePtr: StringPtr) => void; onPlayFile: (filePtr: StringPtr, volume: number) => void; onCloseFile: (filePtr: StringPtr) => void; clearCache(): void; _run_checks(): void; _cleanup(): void; private reportWatched; toJSON(): string; }