import { StateManager } from "@/core/state";
import { VisualizationEngine } from "@/core/visualization";
import { UIComponentDependencies } from "@/lib/components/ui";
import { MultiMidiManager } from "@/lib/core/midi/multi-midi-manager";
export declare class UIUpdater {
    private stateManager;
    private visualizationEngine;
    private midiManager;
    private config;
    private updateLoopId;
    private hasSeenNonZeroTime;
    private lastKnownDurationSec;
    constructor(stateManager: StateManager, visualizationEngine: VisualizationEngine, midiManager: MultiMidiManager, config: {
        updateInterval: number;
    });
    /**
     * Compute total duration for UI (seekbar/time labels) in raw content seconds.
     * Takes the maximum of MIDI duration and registered WAV duration.
     * Tempo/playback rate does NOT scale this value to avoid seek mismatches.
     */
    private computeEffectiveDuration;
    /**
     * Get UI dependencies object for UIComponents
     */
    getUIDependencies(uiDeps: UIComponentDependencies | null): UIComponentDependencies;
    /**
     * Start the update loop for UI synchronization
     */
    startUpdateLoop(uiDeps: UIComponentDependencies | null): void;
    /**
     * Stop update loop
     */
    stopUpdateLoop(): void;
    /**
     * Update piano roll
     */
    private updatePianoRoll;
    /**
     * Update seek bar
     */
    updateSeekBar(uiDeps: UIComponentDependencies | null): void;
    /**
     * Update play button
     */
    updatePlayButton(deps: UIComponentDependencies | null): void;
    /**
     * Update time display
     */
    updateTimeDisplay(overrideTime?: number, timeDisplay?: HTMLElement): void;
    /**
     * Update mute state
     */
    private updateMuteState;
    /**
     * Open settings modal
     */
    private openSettingsModal;
    /**
     * Open evaluation results modal
     */
    private openEvaluationResultsModal;
    /**
     * Update sidebar with current files
     */
    updateSidebar(sidebarContainer: HTMLElement): void;
    /**
     * Update file toggle section
     */
    updateFileToggleSection(fileToggleContainer: HTMLElement | null, deps: UIComponentDependencies): void;
}
//# sourceMappingURL=ui-updater.d.ts.map