import { ShadowDOMManager } from './ShadowDOMManager';
import type { PlayerState } from '../types';
/**
 * Manages UI coordination and positioning. Now uses PlayerView for DOM creation
 * and DragManager for drag functionality, making it much more focused.
 */
export declare class UIManager {
    private shadowDOMManager;
    private playerView;
    private dragManager;
    private playerRoot;
    private playerElement;
    private minimizeButton;
    private exitButton;
    private playPauseButton;
    constructor(shadowDOMManager: ShadowDOMManager);
    /**
     * Creates the complete player UI using the new decoupled structure
     */
    createPlayerUI(videoManager: any, cursorManager: any, interactionManager: any, buttonManager: any): void;
    /**
     * Sets up click handler for video container
     */
    private setupVideoContainerClickHandler;
    /**
     * Updates the position of the player element based on store state
     */
    updatePosition(): void;
    /**
     * Handles minimize button click
     */
    handleMinimizeClick(): void;
    /**
     * Handles minimize state changes and updates button visibility
     */
    handleMinimizeStateChange(isMinimized: boolean): void;
    /**
     * Updates the visibility of player controls based on the current state
     * @param state - The current player state
     */
    updateControlsVisibility(state: PlayerState): void;
    /**
     * Gets the player element
     */
    getPlayerElement(): HTMLElement | null;
    /**
     * Gets the player root element
     */
    getPlayerRoot(): HTMLElement | null;
    /**
     * Checks if the UI is currently being dragged
     */
    isCurrentlyDragging(): boolean;
    /**
     * Checks if dragging just finished
     */
    hasJustFinishedDragging(): boolean;
    /**
     * Resets drag state
     */
    resetDragState(): void;
    /**
     * Destroys the UI and cleans up resources
     */
    destroy(): void;
}
//# sourceMappingURL=UIManager.d.ts.map