import type { AuthoredAnimation } from "./authoredObjects.js"; /** Structural marker input; immutable editor scene documents satisfy it. */ export interface AuthoredAnimationDocumentLike { readonly markers: readonly { readonly id: string; readonly meta?: Readonly>; }[]; } /** Rejected saved animation data with a document location and a repair. */ export interface AuthoredAnimationDiagnostic { readonly path: string; readonly message: string; readonly repair: string; } /** Resolved marker animation or the caller's unchanged default, with rejected-value diagnostics. */ export interface AuthoredAnimationResult { readonly animation: AuthoredAnimation | undefined; readonly diagnostics: readonly AuthoredAnimationDiagnostic[]; } /** * Resolves a caller-selected marker's animation. Authored configuration replaces game defaults; * omitted or malformed data retains the exact default. Partial roles remain available for editing. * Asset clip and rig compatibility is diagnosed by the animation renderer. * @capability authored-animation bind saved character animation without copying game-side validation */ export declare function readAuthoredAnimation(document: AuthoredAnimationDocumentLike, markerId: string, defaults?: AuthoredAnimation): AuthoredAnimationResult; /** * Validates one saved animation value at the caller's document path without scanning markers. * Omitted or malformed values retain the exact default; valid authored configuration replaces it whole. * @capability authored-animation validate a located animation override in a single-pass document resolver */ export declare function readAuthoredAnimationValue(value: unknown, path: string, defaults?: AuthoredAnimation): AuthoredAnimationResult; /** * Reads the latest immutable document each call, validating only when document identity changes. * The caller owns the marker-to-character association and its asset-specific animation defaults. * @capability authored-animation consume live authored character animation with bounded per-frame work */ export declare function createAuthoredAnimationReader(getDocument: () => AuthoredAnimationDocumentLike, markerId: string, defaults?: AuthoredAnimation): () => AuthoredAnimationResult;