/** @packageDocumentation
 * @module StatusBar
 */
import * as React from "react";
import { StatusFieldProps } from "./StatusFieldProps";
/** Defines properties supported by the SnapMode Field Component.
 */
interface SnapModeFieldProps extends StatusFieldProps {
    snapMode: number;
    setSnapMode: (mode: number) => any;
}
interface SnapModeFieldState {
    target: HTMLElement | null;
}
/**
 * Snap Mode Field React component. This component is designed to be specified in a status bar definition. It will
 * display the active snap mode that AccuSnap will use and allow the user to select a new snap mode.
 */
declare class SnapModeFieldComponent extends React.Component<SnapModeFieldProps, SnapModeFieldState> {
    private _snapModeFieldArray;
    private _title;
    readonly state: SnapModeFieldState;
    constructor(props: SnapModeFieldProps);
    /** Return icon class name for a specific snapMode. */
    private getSnapModeIconNameFromMode;
    /** Standard React render method. */
    render(): React.ReactNode;
    /** Return array of SnapRow elements, one for each support snap mode. This array will populate the pop-up used
      * to select a SnapMode.
      */
    private getSnapEntries;
    /** Called when user clicks on a Snap Mode entry in the pop-up window. */
    private _handleSnapModeFieldClick;
}
/**
 * Snap Mode Field React component. This component is designed to be specified in a status bar definition. It will
 * display the active snap mode that AccuSnap will use and allow the user to select a new snap mode.
 * This Field React component is Redux connected.
 * @public
 */ export declare const SnapModeField: import("react-redux").ConnectedComponent<typeof SnapModeFieldComponent, import("react-redux").Omit<React.ClassAttributes<SnapModeFieldComponent> & SnapModeFieldProps, "setSnapMode" | "snapMode">>;
export {};
//# sourceMappingURL=SnapMode.d.ts.map