import { AnimAdapters, AnimApi, AnimApiCore } from "../../../types/animate.types.js"; export declare function bind_anim_api(target: TTarget, core: AnimApiCore): AnimApi; /** * Normalize and validate an animation/keyframes name. * * Trims surrounding whitespace and rejects the empty string. This is used as a * boundary guard for APIs that set `animation-name` or refer to named * `@keyframes` blocks. * * @param name * The raw name from user input. * * @returns * The trimmed, non-empty name. * * @throws {Error} * If the trimmed name is empty. */ export declare function normalizeName(name: string): string; /** * Create a small, framework-agnostic animation API over an arbitrary “tree scope” * using adapters. * * This factory does not know about LiveTree, QUIDs, DOM selection, or CSS rule * storage. Instead, it delegates all mutation and DOM access to `AnimAdapters`. * * The returned API supports four main operations: * - `begin(spec)`: apply a normalized spec as explicit `animation-*` properties * - `beginName(name)`: set only `animation-name` (minimal entry) * - `end(mode)`: stop animations by setting `animation-name: none` (optionally clear all) * - `restart(spec|name)`: stop, force reflow, then re-apply (common “restart trick”) * * Important semantics: * - `duration` is required for `begin()`/`restart()` (enforced by `normalizeSpec()`). * - Restart uses a single DOM element from the scope (`getFirstDomElement`) to * trigger layout flush; if none exists, restart degrades to “re-apply props” * without forcing reflow. * * @typeParam TTree * The caller’s “scope” type (e.g., `{ quids: string[] }`, or a DOM collection). * * @param adapters * Adapter functions that define how to: * - set a style property on the scope (`setStyleProp`) * - find DOM elements for the scope (`getFirstDomElement`, etc.) * * @returns * An `AnimApi` implementing begin/restart/end operations over the scope. */ export declare function apply_animation(adapters: AnimAdapters): AnimApiCore; //# sourceMappingURL=anim.d.ts.map