import { ReactSwitchProps } from 'react-switch';
import { TippyProps } from '@tippyjs/react';
import { ConfirmationItem } from '../Button/ButtonComponents/ConfirmationButton';
import { FormLabelProps } from '../FormLabel/FormLabel';
type ToggleBaseProps = {
    /** Checked value of the Switch - boolean */
    checked: ReactSwitchProps['checked'];
    /** Disabled state of the Switch - boolean */
    disabled?: ReactSwitchProps['disabled'];
    /** Optional class for the Switch */
    className?: string;
    /** Set as an attribute to the embedded checkbox. This is useful for the associated label, which can point to the id in its htmlFor attribute. */
    customId?: ReactSwitchProps['id'];
    /** Optionally add a label for the Toggle */
    formLabelProps?: Omit<FormLabelProps, 'rightLabel' | 'disabled' | 'error'>;
};
type WithConfirmation = ToggleBaseProps & {
    /** Confirmation to appear when switching the Toggle value */
    confirmation: ConfirmationItem;
    /** Optional props for the tippy popover when using confirmation */
    tippyProps?: TippyProps;
    callout?: never;
};
type WithoutConfirmation = ToggleBaseProps & {
    /** function to be executed when the checked status change */
    callout: (checked: boolean) => void;
    confirmation?: never;
    tippyProps?: never;
};
export type ToggleProps = WithConfirmation | WithoutConfirmation;
declare const Toggle: ({ checked, callout, className, customId, disabled, confirmation, tippyProps, formLabelProps, }: ToggleProps) => JSX.Element;
export default Toggle;
