import * as React from 'react';
import type { ActionTraceEventInContext } from '@isomorphic/trace/traceModel';
import type { Boundaries } from './geometry';
import './playbackControl.css';
export type PlaybackState = {
    playing: boolean;
    speed: number;
    currentIndex: number;
    percent: number;
    animating: boolean;
    togglePlay: () => void;
    stop: () => void;
    prev: () => void;
    next: () => void;
    cycleSpeed: () => void;
    onScrubberMouseDown: (e: React.MouseEvent) => void;
    scrubberRef: React.RefObject<HTMLDivElement | null>;
    actionsLength: number;
    canPrev: boolean;
    canNext: boolean;
    canStop: boolean;
    ticks: number[] | undefined;
};
export declare function usePlayback(actions: ActionTraceEventInContext[], selectedAction: ActionTraceEventInContext | undefined, onActionSelected: (action: ActionTraceEventInContext) => void, timeWindow: Boundaries | undefined, boundaries: Boundaries): PlaybackState;
export declare const PlaybackButtons: React.FC<{
    playback: PlaybackState;
}>;
export declare const PlaybackScrubber: React.FC<{
    playback: PlaybackState;
}>;
//# sourceMappingURL=playbackControl.d.ts.map