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 GlobeContextType, type GlobeController } from '../../hooks';
import { type Features, type StyleSet } from '../../util';
import { type ControlProps } from '../Toolbar';
export type ProjectionType = 'orthographic' | 'mercator' | 'transverse-mercator';
type GlobeRootProps = Partial<Pick<GlobeContextType, 'center' | 'zoom' | 'translation' | 'rotation'>> & PropsWithChildren;
/** Consumer-facing props for `Globe.Viewport` (classNames + children). */
type GlobeViewportProps = ThemedClassName<PropsWithChildren>;
type GlobeCanvasProps = {
    projection?: ProjectionType | GeoProjection;
    topology?: Topology;
    features?: Features;
    styles?: StyleSet;
};
declare function GlobeCanvas({ projection: projectionProp, topology, features, styles: stylesProp }: GlobeCanvasProps): React.JSX.Element;
declare namespace GlobeCanvas {
    var displayName: string;
}
type GlobeControlProps = {
    position?: ControlPosition;
} & Pick<ControlProps, 'onAction'>;
export declare const Globe: {
    Root: React.ForwardRefExoticComponent<Partial<Pick<GlobeContextType, "center" | "rotation" | "translation" | "zoom">> & {
        children?: React.ReactNode | undefined;
    } & React.RefAttributes<GlobeController>>;
    Viewport: React.ForwardRefExoticComponent<Omit<{}, "className"> & {
        classNames?: import("@dxos/ui-types").ClassNameValue;
    } & Pick<React.HTMLAttributes<Element>, "children" | "className" | "role" | "style"> & React.RefAttributes<HTMLDivElement>>;
    Canvas: {
        ({ projection: projectionProp, topology, features, styles: stylesProp }: GlobeCanvasProps): React.JSX.Element;
        displayName: string;
    };
    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, GlobeViewportProps, GlobeCanvasProps };
//# sourceMappingURL=Globe.d.ts.map