import type { Core } from '@openplayerjs/core'; export type VerticalSlot = 'top' | 'middle' | 'bottom'; export type HorizontalSlot = 'left' | 'center' | 'right'; export type ControlPlacement = { v: VerticalSlot; h: HorizontalSlot; region?: 'main'; }; export type Control = { id: string; placement: ControlPlacement; create(core: Core): HTMLElement; destroy?(): void; }; export declare const DEFAULT_CONTROLS: Record; /** * Normalises any controls configuration shape into a flat slot → id[] map. * * Accepted formats: * - **Omitted / empty** (`undefined`, `null`, `{}`) → returns the default layout. * - **Flat** (`{ top: [...], 'bottom-left': [...] }`) → used as-is; non-array * properties (e.g. `alwaysVisible`) are silently ignored. * - **Layers** (`{ layers: { left, middle, right } }`) → mapped to * `bottom-left`, `top`, and `bottom-right` respectively. */ export declare function normalizeControlsConfig(cfg: any): Record; export declare function createControlGrid(controlsRoot: HTMLElement, mainRoot?: HTMLElement): { place(placement: Control["placement"], el: HTMLElement): void; }; export declare function registerControl(name: string, factory: () => Control | null): void; export declare function getControl(name: string): Control | null; export declare function buildControls(config?: any): Control[]; //# sourceMappingURL=control.d.ts.map