import type { FrameBuilder } from './CanvasLoader.js'; import type { LoaderszOrbOptions, OrbState } from './types.js'; /** Options for a loader whose visual state is selected by its import path. */ export type LoaderszSingleModeOptions = Omit; /** Public controller API returned by a single-mode entry point. */ export interface LoaderszSingleModeLoader { /** Canvas owned by this controller. */ readonly canvas: HTMLCanvasElement; /** Applies an update while keeping the imported visual state fixed. */ setOptions(options: LoaderszSingleModeOptions): void; /** Stops animation and releases browser listeners. */ destroy(): void; } /** Constructor shape exposed by a single-mode entry point. */ export type LoaderszSingleModeConstructor = new (canvas: HTMLCanvasElement, options?: LoaderszSingleModeOptions) => LoaderszSingleModeLoader; /** * Creates a Canvas controller permanently bound to one visual state. * * Keeping the state outside the caller's options lets a bundler retain only the selected frame * builder. Calls to `setOptions` intentionally cannot change that state. * * @param state Semantic state permanently rendered by the returned constructor. * @param builder Pure frame builder for that state. * @returns A controller constructor that accepts every option except `state`. */ export declare function createFixedModeLoader(state: OrbState, builder: FrameBuilder): LoaderszSingleModeConstructor; /** * Creates a native `` element permanently bound to one visual state. * * The element keeps the normal size, speed, density, colour, theme, motion and accessibility * attributes. A `state` attribute is accepted for markup compatibility but the imported state * always wins. * * @param createLoader Fixed-state controller constructor to own the element's canvas. * @returns A custom-element constructor ready to register as `loadersz-loader`. */ export declare function createFixedModeElement(createLoader: LoaderszSingleModeConstructor): CustomElementConstructor; //# sourceMappingURL=FixedLoader.d.ts.map