import { Scene, WebGLRenderer, Camera } from 'three';
import { b as EventListener } from './event-eVGLSgY3.js';

type CustomLayerEventMap = {
    add: {
        renderer: WebGLRenderer;
    };
    remove: {
        renderer: WebGLRenderer;
    };
    beforerender: {
        renderer: WebGLRenderer;
        scene: Scene;
        camera: Camera;
    };
    afterrender: {
        renderer: WebGLRenderer;
        scene: Scene;
        camera: Camera;
    };
};
interface IWebGLOverlayView extends google.maps.WebGLOverlayView {
    readonly anchor: google.maps.LatLng;
    readonly worldAnchor: [number, number, number];
    add(...args: Parameters<Scene["add"]>): ReturnType<Scene["add"]>;
    remove(...args: Parameters<Scene["remove"]>): ReturnType<Scene["remove"]>;
    addRenderEventListener<EventType extends keyof CustomLayerEventMap>(type: EventType, cb: EventListener<CustomLayerEventMap, EventType>): () => void;
    removeRenderEventListener<EventType extends keyof CustomLayerEventMap>(type: EventType, cb: EventListener<CustomLayerEventMap, EventType>): void;
    dispose(): void;
}
declare function getWebGLOverlayViewClass(WebGLOverlayView: typeof google.maps.WebGLOverlayView): new (anchor: google.maps.LatLng | google.maps.LatLngLiteral) => IWebGLOverlayView;

export { type IWebGLOverlayView, getWebGLOverlayViewClass };
