import type { Coordinate } from 'ol/coordinate.js';
/** The footage displayed by a provider, with the position it was taken from in WGS84 (longitude, latitude). */
export type Footage = {
    lonLat: Coordinate;
    heading: number;
    pitch: number;
};
/** The direction of sight to apply to a displayed footage. */
export type PointOfView = Pick<Footage, 'heading' | 'pitch'>;
/**
 * A service providing the footage displayed by a StreetView Component.
 * All the coordinates are in WGS84 (longitude, latitude): the Component takes care of the map projection.
 */
export interface StreetViewProviderAdapter {
    /**
     * Loads the external library, if needed, and creates the viewer in the target element.
     * The callback is called each time the displayed footage or the direction of sight changes.
     */
    initialize(target: HTMLElement, onFootageChanged: (footage: Footage) => void): Promise<void>;
    /**
     * Displays the closest footage around the coordinate, within the radius (in meters),
     * looking in the given direction or, by default, in the direction the footage was taken.
     * Resolves to false when there is no footage within the radius.
     */
    showClosestFootage(lonLat: Coordinate, radius: number, pov?: PointOfView): Promise<boolean>;
    setVisible(visible: boolean): void;
}
