export interface IdleWindowConfig { maxSeconds?: number; efficiency?: number; } export interface IdleWindow { elapsedSeconds: number; effectiveSeconds: number; capped: boolean; } /** @internal */ export declare function idleWindow(lastSeenMs: number, nowMs: number, config?: IdleWindowConfig): IdleWindow; export interface LinearCatchUpInput { current: number; ratePerSecond: number; min?: number; max?: number; } /** @internal */ export declare function linearCatchUp(seconds: number, input: LinearCatchUpInput): number; export interface ExponentialCatchUpInput { current: number; factorPerSecond: number; min?: number; max?: number; } /** @internal */ export declare function exponentialCatchUp(seconds: number, input: ExponentialCatchUpInput): number; export interface SteppedCatchUpResult { steps: number; remainderSeconds: number; } /** @internal */ export declare function steppedCatchUp(seconds: number, stepSeconds: number, step: (index: number) => void, maxSteps?: number): SteppedCatchUpResult;