import type { TimeMs, Theme } from '../../core/models/types';
export declare class ManagedPlayhead {
    private static readonly SVG_NS;
    private static readonly VISUAL_WIDTH;
    private static readonly HANDLE_HEIGHT;
    private static readonly HANDLE_LINE_START;
    private static readonly LINE_WIDTH;
    private static readonly LINE_HIT_WIDTH;
    private static readonly END_CAP_WIDTH;
    private static readonly END_CAP_HEIGHT;
    private static readonly AUTO_SCROLL_EDGE_THRESHOLD;
    private static readonly AUTO_SCROLL_MAX_SPEED;
    private readonly container;
    private readonly visualElement;
    private readonly lineHitAreaElement;
    private readonly theme;
    private readonly onTimeChange;
    private readonly onHorizontalAutoScroll?;
    private currentTime;
    private zoom;
    private scrollLeft;
    private height;
    private isDragging;
    private hasBoundGlobalPointerListeners;
    private edgeAutoScrollAnimationFrameId;
    private lastPointerClientX;
    private handleGlobalPointerMove;
    private handleGlobalPointerEnd;
    private handleVisibilityChange;
    constructor(container: HTMLElement, initialTime: TimeMs, zoom: number, height: number, theme: Theme, onTimeChange: (time: TimeMs, mode?: 'seek' | 'scrub') => void, onHorizontalAutoScroll?: (nextScrollLeft: number) => number);
    setCurrentTime(time: TimeMs): void;
    setTime(time: TimeMs): void;
    setZoom(zoom: number): void;
    setScrollLeft(scrollLeft: number): void;
    setHeight(height: number): void;
    destroy(): void;
    private handleMouseDown;
    private handleHandleClick;
    private bindGlobalPointerListeners;
    private unbindGlobalPointerListeners;
    private updateTimeFromClientX;
    private updateEdgeAutoScrollState;
    private calculateHorizontalAutoScrollVelocity;
    private startEdgeAutoScroll;
    private stopEdgeAutoScroll;
    private readonly handleEdgeAutoScrollFrame;
    private render;
    private renderVisual;
    private createHandleShadowPath;
    private createHandleBadgePath;
    private createGripLines;
    private createMainLine;
    private createEndCap;
}
