/**
 * Keyframes Utilities
 *
 * Optimized utilities for extracting and processing keyframes in styles.
 * Designed for zero overhead when no keyframes are used.
 */
import { KeyframesSteps } from '../injector/types';
import { Styles } from '../styles/types';
/**
 * Check if styles object has local @keyframes definition.
 * Fast path: single property lookup.
 */
export declare function hasLocalKeyframes(styles: Styles): boolean;
/**
 * Extract local @keyframes from styles object.
 * Returns null if no local keyframes (fast path).
 */
export declare function extractLocalKeyframes(styles: Styles): Record<string, KeyframesSteps> | null;
/**
 * Merge local and global keyframes.
 * Local keyframes take priority over global.
 * Returns null if no keyframes exist (fast path).
 */
export declare function mergeKeyframes(local: Record<string, KeyframesSteps> | null, global: Record<string, KeyframesSteps> | null): Record<string, KeyframesSteps> | null;
/**
 * Get merged keyframes for styles (local + global).
 * Returns null if no keyframes defined anywhere (fast path).
 */
export declare function getKeyframesForStyles(styles: Styles): Record<string, KeyframesSteps> | null;
/**
 * Extract all animation names referenced in styles.
 * Scans 'animation' and 'animationName' properties including in state mappings.
 * Returns empty set if no animation properties found (fast path).
 */
export declare function extractAnimationNamesFromStyles(styles: Styles): Set<string>;
/**
 * Replace animation names in CSS declarations with injected names.
 * Optimized to avoid regex creation - uses simple string replacement.
 *
 * @param declarations CSS declarations string
 * @param nameMap Map from original name to injected name (only contains names that differ)
 * @returns Updated declarations string
 */
export declare function replaceAnimationNames(declarations: string, nameMap: Map<string, string>): string;
/**
 * Filter keyframes to only those that are actually used.
 * Returns null if no keyframes are used (fast path).
 */
export declare function filterUsedKeyframes(keyframes: Record<string, KeyframesSteps> | null, usedNames: Set<string>): Record<string, KeyframesSteps> | null;
