UNPKG

phaser-jsx

Version:
42 lines 1.5 kB
import type { Scene } from 'phaser'; import type { JSX } from 'react'; import type { GameObjectNode } from '../types'; /** * Stored data for a single effect slot. */ interface EffectRecord { deps: unknown[] | undefined; cleanup: (() => void) | void; } /** * An effect queued during render, to be flushed after reconciliation. */ interface PendingEffect { key: number; callback: () => (() => void) | void; deps: unknown[] | undefined; } /** * Render context for tracking state and reconciliation. */ export interface RenderContext { state: Map<number, unknown>; effects: Map<number, EffectRecord>; pendingEffects: PendingEffect[]; scene: Scene | null; componentFn: ((...args: unknown[]) => JSX.Element) | null; componentProps: Record<string, unknown> | null; gameObjectTree: GameObjectNode | null; getNextStateIndex: () => number; resetStateIndex: () => void; getNextEffectIndex: () => number; resetEffectIndex: () => void; flushEffects: () => void; rerender: () => void; } export declare function getRenderContext(): RenderContext; export declare function setRenderContext(context: RenderContext): void; export declare function createRenderContext(element?: JSX.Element | null, scene?: Scene | null, componentFn?: ((...args: unknown[]) => JSX.Element) | null, componentProps?: Record<string, unknown> | null): RenderContext; export declare function resetRenderContext(): void; export {}; //# sourceMappingURL=context.d.ts.map