/**
 * @typedef {Object} NgProps
 * @property {number} perspectiveZoom
 * @property {Object} viewerState
 * @property {string} brainMapsClientId
 * @property {string} key
 * @property {Object<string, string>} cellColorMapping
 *
 * @property {Array} eventBindingsToUpdate
 * An array of event bindings to change in Neuroglancer.  The array format is as follows:
 * [[old-event1, new-event1], [old-event2], old-event3]
 * Here, `old-event1`'s will be unbound and its action will be re-bound to `new-event1`.
 * The bindings for `old-event2` and `old-event3` will be removed.
 * Neuroglancer has its own syntax for event descriptors, and here are some examples:
 * 'keya', 'shift+keyb' 'control+keyc', 'digit4', 'space', 'arrowleft', 'comma', 'period',
 * 'minus', 'equal', 'bracketleft'.
 *
 * @property {(segment:any|null, layer:any) => void} onSelectedChanged
 * A function of the form `(segment, layer) => {}`, called each time there is a change to
 * the segment the user has 'selected' (i.e., hovered over) in Neuroglancer.
 * The `segment` argument will be a Neuroglancer `Uint64` with the ID of the now-selected
 * segment, or `null` if no segment is now selected.
 * The `layer` argument will be a Neuroglaner `ManagedUserLayer`, whose `layer` property
 * will be a Neuroglancer `SegmentationUserLayer`.
 *
 * @property {(segments:any, layer:any) => void} onVisibleChanged
 * A function of the form `(segments, layer) => {}`, called each time there is a change to
 * the segments the user has designated as 'visible' (i.e., double-clicked on) in Neuroglancer.
 * The `segments` argument will be a Neuroglancer `Uint64Set` whose elements are `Uint64`
 * instances for the IDs of the now-visible segments.
 * The `layer` argument will be a Neuroglaner `ManagedUserLayer`, whose `layer` property
 * will be a Neuroglancer `SegmentationUserLayer`.
 *
 * @property {() => void} onSelectionDetailsStateChanged
 * A function of the form `() => {}` to respond to selection changes in the viewer.
 * @property {() => void} onViewerStateChanged
 *
 * @property {Array<Object>} callbacks
 * // ngServer: string,
 */
export function parseUrlHash(url: any): any;
export function getNeuroglancerViewerState(key: any): any;
export function getNeuroglancerColor(idStr: any, key: any): any;
export function closeSelectionTab(key: any): void;
export function getLayerManager(key: any): any;
export function getManagedLayer(key: any, name: any): any;
export function getAnnotationLayer(key: any, name: any): any;
export function getAnnotationSource(key: any, name: any): any;
export function addLayerSignalRemover(key: any, name: any, remover: any): void;
export function unsubscribeLayersChangedSignals(layerManager: any, signalKey: any): void;
export function configureLayersChangedSignals(key: any, layerConfig: any): any;
export function configureAnnotationLayer(layer: any, props: any, recordRemover: any): void;
export function configureAnnotationLayerChanged(layer: any, props: any, recordRemover: any): void;
export function getAnnotationSelectionHost(key: any): "viewer" | "layer" | null;
export function getSelectedAnnotationId(key: any, layerName: any): any;
/** @extends {React.Component<NgProps>} */
export default class Neuroglancer {
    static defaultProps: {
        perspectiveZoom: number;
        eventBindingsToUpdate: null;
        brainMapsClientId: string;
        viewerState: null;
        onSelectedChanged: null;
        onVisibleChanged: null;
        onSelectionDetailsStateChanged: null;
        onViewerStateChanged: null;
        key: null;
        callbacks: never[];
        ngServer: string;
    };
    constructor(props: any);
    ngContainer: any;
    viewer: any;
    muteViewerChanged: boolean;
    prevVisibleIds: Set<any>;
    prevColorMap: any;
    disposers: any[];
    prevColorOverrides: Set<any>;
    overrideColorsById: any;
    allKnownIds: Set<any>;
    minimalPoseSnapshot: () => {
        position: any[];
        projectionScale: any;
        projectionOrientation: any[];
    };
    scheduleEmit: () => () => void;
    withoutEmitting: (fn: any) => void;
    didLayersChange: (prevVS: any, nextVS: any) => boolean;
    applyColorsAndVisibility: (cellColorMapping: any) => void;
    componentDidMount(): void;
    componentDidUpdate(prevProps: any, prevState: any): void;
    componentWillUnmount(): void;
    setCallbacks(callbacks: any): void;
    updateEventBindings: (eventBindingsToUpdate: any) => void;
    selectionDetailsStateChanged: () => void;
    layersChanged: () => void;
    handlerRemovers: any[] | undefined;
    selectedChanged: (layer: any) => void;
    visibleChanged: (layer: any) => void;
    render(): JSX.Element;
}
export type NgProps = {
    perspectiveZoom: number;
    viewerState: Object;
    brainMapsClientId: string;
    key: string;
    cellColorMapping: {
        [x: string]: string;
    };
    /**
     * An array of event bindings to change in Neuroglancer.  The array format is as follows:
     * [[old-event1, new-event1], [old-event2], old-event3]
     * Here, `old-event1`'s will be unbound and its action will be re-bound to `new-event1`.
     * The bindings for `old-event2` and `old-event3` will be removed.
     * Neuroglancer has its own syntax for event descriptors, and here are some examples:
     * 'keya', 'shift+keyb' 'control+keyc', 'digit4', 'space', 'arrowleft', 'comma', 'period',
     * 'minus', 'equal', 'bracketleft'.
     */
    eventBindingsToUpdate: any[];
    /**
     * A function of the form `(segment, layer) => {}`, called each time there is a change to
     * the segment the user has 'selected' (i.e., hovered over) in Neuroglancer.
     * The `segment` argument will be a Neuroglancer `Uint64` with the ID of the now-selected
     * segment, or `null` if no segment is now selected.
     * The `layer` argument will be a Neuroglaner `ManagedUserLayer`, whose `layer` property
     * will be a Neuroglancer `SegmentationUserLayer`.
     */
    onSelectedChanged: (segment: any | null, layer: any) => void;
    /**
     * A function of the form `(segments, layer) => {}`, called each time there is a change to
     * the segments the user has designated as 'visible' (i.e., double-clicked on) in Neuroglancer.
     * The `segments` argument will be a Neuroglancer `Uint64Set` whose elements are `Uint64`
     * instances for the IDs of the now-visible segments.
     * The `layer` argument will be a Neuroglaner `ManagedUserLayer`, whose `layer` property
     * will be a Neuroglancer `SegmentationUserLayer`.
     */
    onVisibleChanged: (segments: any, layer: any) => void;
    /**
     * A function of the form `() => {}` to respond to selection changes in the viewer.
     */
    onSelectionDetailsStateChanged: () => void;
    onViewerStateChanged: () => void;
    /**
     * // ngServer: string,
     */
    callbacks: Array<Object>;
};
//# sourceMappingURL=ReactNeuroglancer.d.ts.map