import { CssDeclMap, KeyframesRegistry } from "../../../types/keyframes.types.js"; /** * Normalize a declaration map used inside a keyframe step. * * Normalization rules: * - Drops entries whose property key is empty/whitespace. * - Trims keys and values. * - Drops entries whose trimmed value becomes the empty string. * * This keeps the stored form canonical and reduces noisy diffs between * semantically equivalent inputs (e.g. accidental trailing whitespace). * * @param decls * A map of CSS property → raw CSS value text. * * @returns * A fresh declaration map containing only non-empty keys and values, * with all keys/values trimmed. */ export declare function normalize_decls(decls: CssDeclMap): CssDeclMap; /** * Create a small in-memory manager for `@keyframes` blocks. * * The manager: * - Stores canonical keyframe definitions by name (`KeyframesName → KeyframesDef`). * - Normalizes all inputs at the boundary (`normalizeKeyframesInput`), ensuring: * - deterministic step ordering * - trimmed keys/values * - validated selectors * - Renders either a single block (`renderOne`) or the full set (`renderAll`) * in deterministic name order for snapshot/diff friendliness. * * Change signaling: * - Any mutating operation (`set`, `setMany`, `delete`) calls `args.onChange()` * when it actually changes stored state. * * Intended usage: * - As a sub-manager inside a larger stylesheet system (e.g. a CSS manager) * that re-renders a combined `