import { type GeoProjection } from 'd3';
import { type ControlPosition } from 'leaflet';
import React, { type PropsWithChildren } from 'react';
import { type Topology } from 'topojson-specification';
import { type ThemedClassName } from '@dxos/react-ui';
import { type GlobeContextProviderProps, type GlobeContextType } from '../../hooks';
import { type Features, type StyleSet } from '../../util';
import { type ControlProps } from '../Toolbar';
export type GlobeController = {
    canvas: HTMLCanvasElement;
    projection: GeoProjection;
} & Pick<GlobeContextType, 'scale' | 'translation' | 'rotation' | 'setScale' | 'setTranslation' | 'setRotation'>;
export type ProjectionType = 'orthographic' | 'mercator' | 'transverse-mercator';
type GlobeRootProps = PropsWithChildren<ThemedClassName<GlobeContextProviderProps>>;
type GlobeCanvasProps = {
    projection?: ProjectionType | GeoProjection;
    topology?: Topology;
    features?: Features;
    styles?: StyleSet;
};
type GlobeControlProps = {
    position?: ControlPosition;
} & Pick<ControlProps, 'onAction'>;
export declare const Globe: {
    Root: ({ classNames, children, ...props }: GlobeRootProps) => React.JSX.Element;
    Canvas: React.ForwardRefExoticComponent<GlobeCanvasProps & React.RefAttributes<GlobeController>>;
    Zoom: ({ onAction, position, ...props }: GlobeControlProps) => React.JSX.Element;
    Action: ({ onAction, position, ...props }: GlobeControlProps) => React.JSX.Element;
    Debug: ({ position }: {
        position?: ControlPosition;
    }) => React.JSX.Element;
    Panel: ({ position, classNames, children, }: ThemedClassName<PropsWithChildren & {
        position?: ControlPosition;
    }>) => React.JSX.Element;
};
export type { GlobeRootProps, GlobeCanvasProps };
//# sourceMappingURL=Globe.d.ts.map