import { Viewer } from 'cesium';

/**
 * Copies configuration and state from one Cesium Viewer to another.
 * @param source - The source viewer to copy properties from
 * @param container - DOM element ID or element for the new viewer
 * @param options - Optional override options for the new viewer
 * @returns A new Viewer instance with copied properties
 */
declare function cloneViewer(source: Viewer, container: Element | string, options?: Viewer.ConstructorOptions): Viewer;

/**
 * Copies camera state from source viewer to destination viewer.
 * @param source The source viewer to copy camera states from.
 * @param dest The destination viewer to apply camera properties from the source.
 */
declare function syncCamera(source: Viewer, dest: Viewer): void;

export { cloneViewer, syncCamera };
