import type { PlayerConfig, LicenseResult } from '@vizor-vr/shared'; import type { PlayerState } from '../core/player-state.js'; import type { VzEventEmitter } from '../core/event-emitter.js'; /** * Controls overlay container rendered in shadow DOM. * Vimeo-inspired layout: seek bar above button row, smooth slide-up. * * Layout: * .vz-controls-wrapper (outer — animated show/hide) * .vz-seek-row (progress bar — full width) * .vz-controls (button bar — gradient background) * .vz-controls-left (play, time) * .vz-controls-center (spacer) * .vz-controls-right (volume, quality, compass, vr, fullscreen) */ export declare class ControlsOverlay { private wrapper; private seekRow; private container; private leftSection; private centerSection; private rightSection; private loadingEl; private hideTimer; private state; private cleanups; constructor(shadowRoot: ShadowRoot, containerEl: HTMLElement, state: PlayerState, config: PlayerConfig, _events: VzEventEmitter); /** Show controls and reset the auto-hide timer */ show(): void; /** Hide controls */ hide(): void; /** Add a control element to the overlay */ addControl(el: HTMLElement, section: 'left' | 'center' | 'right' | 'seek'): void; /** * Update theme colors after license validation. * * Color customisation is always respected — the `primary-color` attribute * is the element's accent color regardless of license tier. Tier gating * for color pickers lives in the dashboard embed builder UI, not here. */ updateTheme(config: PlayerConfig, _license: LicenseResult): void; /** Clean up all event listeners and timers */ dispose(): void; private scheduleHide; } //# sourceMappingURL=controls-overlay.d.ts.map