import type { FrameContext, LoaderszOrbOptions, OrbFrame } from './types.js'; /** Builds a complete frame from the current timeline context and resolved options. */ export type FrameBuilder = (context: FrameContext, options: Required) => OrbFrame; /** Shared Canvas lifecycle for the full loader and tree-shakeable single-mode loaders. */ export declare class CanvasLoader { private readonly frameBuilder; /** Canvas owned and resized by this instance. */ readonly canvas: HTMLCanvasElement; /** The retained 2D context used to paint each generated frame. */ readonly context: CanvasRenderingContext2D; /** Fully resolved current options. Prefer {@link setOptions} to changing this object directly. */ options: Required; private reducedMotion; private readonly motionQuery; private animationFrame; private colorOverride; private elapsed; private clockAnchor; private usesLegacyMotionListener; /** Creates, draws and (unless paused) starts one animation. */ constructor(canvas: HTMLCanvasElement, options: LoaderszOrbOptions, frameBuilder: FrameBuilder); /** Applies a partial update, preserves the current timeline phase and redraws immediately. */ setOptions(options: LoaderszOrbOptions): void; /** Permanently releases browser listeners and cancels a pending animation frame. */ destroy(): void; private configureCanvas; private bindLifecycle; private draw; private canAnimate; private readonly syncAnimation; private readonly render; private readonly onDocumentVisibility; private readonly onMotionPreference; /** Resolves CSS colours, including inherited custom properties, once per option update. */ private refreshColorOverride; private currentTime; } //# sourceMappingURL=CanvasLoader.d.ts.map