import { Disposable } from '@gedit/utils'; import { Transition, CustomScript, GameStart } from '@gedit/runtime-types'; import { ScriptPrinter, SpecScriptPrinter } from './common'; import { GameObjectData, GameResource } from '@gedit/render-engine'; import type { SceneActions } from '@gedit/runtime-types'; export declare const MAIN_SCRIPT_ID: unique symbol; /** * import a from 'xxx'; */ export interface ScriptImport { scriptId: Symbol; defaultName?: string; identifiers?: string[]; alias?: string[]; } /** * export a; */ export interface ScriptExport { identifier: string; isDefault: boolean; } /** * Component, * Event, * Transition, * Resource, */ export interface ScriptContent { start: GameStart; loading: GameStart; components: GameObjectData[]; resources: GameResource[]; transitions: Transition[]; actions: SceneActions; customScripts: CustomScript[]; } export interface ScriptReference { index: number; id: Symbol; content: ScriptContent; name?: string; code?: string; imports: ScriptImport[]; exports: ScriptExport[]; } export interface ScriptAst { [key: string]: ScriptReference; } export interface Scripts { [key: string]: ScriptReference; } export declare class ScriptContext { static COUNT: number; readonly ref: ScriptReference; readonly printer: ScriptPrinter; readonly spec: SpecScriptPrinter; constructor(id: Symbol); identifier(...args: string[]): string; } export declare class ScriptManager implements Disposable { private _refs; private _current; constructor(); private _checkNotFound; get main(): ScriptContext; get current(): ScriptContext; addScript(id?: Symbol): Symbol; exportValue(identifier: string, isDefault: boolean): void; importValue(scriptId: Symbol, defaultName?: string, identifiers?: string[], alias?: string[]): void; getScript(id: Symbol): ScriptContext; changeToScript(next: Symbol): void; resetToMain(): void; dispose(): void; } //# sourceMappingURL=script.d.ts.map