import type { MouseEventHandler } from 'react';
import React from 'react';
import type { CellAlignment } from '../DataTable/column';
export interface ToggleSwitchProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'onChange'> {
    /** The id of the DOM node that labels the switch */
    ['aria-labelledby']: string;
    /** Uncontrolled - whether the switch is turned on */
    defaultChecked?: boolean;
    /** Whether the switch is ready for user input */
    disabled?: boolean;
    /** Whether the switch's value is being calculated */
    loading?: boolean;
    /** Whether the switch is turned on */
    checked?: boolean;
    /** The callback that is called when the switch is toggled on or off */
    onChange?: (checked: boolean) => void;
    /** The callback that is called when the switch is clicked */
    onClick?: MouseEventHandler;
    /** Size of the switch */
    size?: 'small' | 'medium';
    /** Whether the "on" and "off" labels should appear before or after the switch.
     * **This should only be changed when the switch's alignment needs to be adjusted.** For example: It needs to be left-aligned because the label appears above it and the caption appears below it.
     */
    statusLabelPosition?: CellAlignment;
    /**
     * If the switch is in the loading state, this value controls the amount of delay in milliseconds before
     * the `loadingLabel` is announced to screen readers.
     * @default 2000
     */
    loadingLabelDelay?: number;
    /** The text to describe what is loading. It should be descriptive and not verbose.
     * This is primarily used for AT (screen readers) to convey what is currently loading.
     */
    loadingLabel?: string;
    /** type of button to account for behavior when added to a form*/
    buttonType?: 'button' | 'submit' | 'reset';
    /** Text to display when the toggle switch is in the 'on' position. Defaults to 'On'. Only customize this label if there is a more specific label for the context. For example, you might use 'Show' if the setting is 'Show images'. */
    buttonLabelOn?: string;
    /** Text to display when the toggle switch is in the 'off' position. Defaults to 'Off'. Only customize this label if there is a more specific label for the context. For example, you might use 'Hide' if the setting is 'Show images'. */
    buttonLabelOff?: string;
}
declare const ToggleSwitch: React.ForwardRefExoticComponent<ToggleSwitchProps & React.RefAttributes<HTMLButtonElement>>;
export default ToggleSwitch;
//# sourceMappingURL=ToggleSwitch.d.ts.map