import type { SpringOptions } from '../physics/spring'; import type { ToOptions } from '../physics/tween'; import type { Scheduler } from '../scheduler/scheduler'; import { type Animatable, type AnimationHandle } from './animatable'; import type { ParsedValue, ValueType } from './value-type'; /** * The bridge between one CSS value and the scalar physics: a value's channels * each become a plain Animatable, so springs, decay-grade velocity * conservation, interpolated exposure, exact rest snap, and reduced-motion * fast-forward are all INHERITED, not re-implemented. The group owns the shared * shape, the cached format string, and a generation counter (keyframe chains * read it to detect staleness). Aggregate handles fan out: `finished` resolves * when the last channel rests, `stop()` freezes them all. */ export interface ChannelGroup { readonly type: ValueType; shape: string; readonly channels: ReadonlyArray; generation: number; format(): string; isAnimating(): boolean; set(parsed: ParsedValue, options?: { velocity?: number; }): void; /** Same rendered pixels, new coordinate system: every channel set(pos*m, { velocity: vel*m }). */ rebase(multiplier: number, shape: string): void; spring(target: ParsedValue, options?: SpringOptions): AnimationHandle; to(target: ParsedValue, options?: ToOptions): AnimationHandle; onChange(listener: () => void): () => void; stop(): void; dispose(): void; } export interface ChannelGroupOptions { scheduler?: Scheduler; } export declare function channelGroup(type: ValueType, parsed: ParsedValue, options?: ChannelGroupOptions): ChannelGroup; //# sourceMappingURL=channel-group.d.ts.map