import { CanvasPool } from './canvas-pool.js'; import type { EffectDefinition, EffectDefinitionAndStack } from './effect-types.js'; export type EffectChainState = { pool: CanvasPool; setupCache: WeakMap, WeakMap>; cleanupRegistry: Array<{ definition: EffectDefinition; state: unknown; }>; currentRunId: number; }; export declare const createEffectChainState: (width: number, height: number) => EffectChainState; export declare const cleanupEffectChainState: (state: EffectChainState) => void; /** Final compositing target for an effect chain (layout canvas or transferred offscreen). */ export type EffectChainOutput = HTMLCanvasElement | OffscreenCanvas; export type RunEffectChainOptions = { readonly state: EffectChainState; readonly source: CanvasImageSource; readonly effects: EffectDefinitionAndStack[]; readonly output: EffectChainOutput; readonly width: number; readonly height: number; }; export declare const runEffectChain: ({ state, source, effects, output, width, height, }: RunEffectChainOptions) => Promise;