/**
 * Shared transition utilities for PipelineStores.
 *
 * Extracts common easing logic and types used by PipelineStore,
 * OrdinalPipelineStore, NetworkPipelineStore, and GeoPipelineStore.
 */
/** Active transition state tracked by each PipelineStore */
export interface ActiveTransition {
    startTime: number;
    duration: number;
}
/** Easing mode — determines interpolation curve */
export type EasingMode = "linear" | "ease-out-cubic";
/**
 * Compute the eased interpolation parameter from raw progress.
 *
 * @param rawT   - Raw linear progress in [0, 1]
 * @param easing - Easing mode. "linear" returns rawT unchanged;
 *                 "ease-out-cubic" (default) applies 1 - (1 - t)^3.
 * @returns Eased progress in [0, 1]
 */
export declare function computeEasing(rawT: number, easing?: EasingMode): number;
/**
 * Compute the raw linear progress of a transition.
 *
 * @param now        - Current timestamp (e.g. performance.now())
 * @param transition - The active transition state
 * @returns Raw progress clamped to [0, 1]
 */
export declare function computeRawProgress(now: number, transition: ActiveTransition): number;
/**
 * Linearly interpolate between two values.
 *
 * @param from - Start value
 * @param to   - End value
 * @param t    - Eased progress in [0, 1]
 */
export declare function lerp(from: number, to: number, t: number): number;
/**
 * Get the current timestamp in a way that works both in browser and Node.
 */
export declare function now(): number;
/** The animate prop type accepted by all HOCs and Stream Frames.
 *  Single source of truth — re-exported by types.ts, ordinalTypes.ts, networkTypes.ts, geoTypes.ts. */
export type AnimateProp = boolean | {
    duration?: number;
    easing?: "linear" | "ease-out";
    intro?: boolean;
};
/**
 * Resolve the declarative `animate` prop into a concrete TransitionConfig.
 * Used by all 4 Stream Frames. `animate` takes precedence over `transitionProp`.
 */
export declare function resolveAnimateConfig(animate: AnimateProp | undefined, transitionProp: {
    duration?: number;
    easing?: "ease-out" | "linear";
} | undefined): {
    transition: {
        duration?: number;
        easing?: "ease-out" | "linear";
    } | undefined;
    introEnabled: boolean;
};
