import { FunctionComponent } from 'react';
import { ButtonProps } from './Button';
import { Input } from '../input';
export interface ToggleExtensionProps extends Input.Control<boolean, boolean> {
    checkedVariant?: ButtonProps["variant"];
    uncheckedVariant?: ButtonProps["variant"];
    rightClickToggle?: boolean;
}
/**
 * Use.Toggle renders a button that can be toggled on and off. It implements the
 * InputControlProps interface, so it can be used as an input control in a form.
 *
 * @param props - Props for the component. Identical to the props for the Use
 * component, excluding 'variant', and  adding the following:
 * @param props.value - The boolean value of the button. If true, the button will be
 * rendered as "filled". If false, it will be rendered as "outlined".
 * @param props.onChange - A callback function that will be called when the button is
 * toggled. The callback will be passed the new value of the button.
 */
export declare const Toggle: FunctionComponent<ToggleExtensionProps & Omit<Omit<Omit<import('../text/WithIcon').WithIconProps<"button", "h1">, "size" | "level" | "startIcon" | "endIcon"> & import('./Button').ButtonExtensionProps & import('./Button').BaseProps & {
    level?: import('../text/external').Level;
    startIcon?: import('react').ReactElement | import('react').ReactElement[];
    endIcon?: import('react').ReactElement | import('react').ReactElement[];
    iconSpacing?: import('../align/Space').SpaceProps["size"];
    disabled?: boolean;
    delay?: number | import('@synnaxlabs/x').TimeSpan;
} & import('../tooltip/wrap').WrapProps, "ref"> & import('react').RefAttributes<HTMLElement>, "value" | "onChange">>;
export type ToggleProps = Omit<Parameters<typeof Toggle>[0], "value" | "onChange"> & ToggleExtensionProps;
export type ToggleIconProps = Omit<Parameters<typeof ToggleIcon>[0], "value" | "onChange"> & ToggleExtensionProps;
/**
 * Use.IconToggle renders a button that can be toggled on and off, and only
 * renders an icon. It implements the InputControlProps interface, so it can be used
 *  as an input control in a form.
 *
 * @param props - Props for the component. Identical to the props for the Use.Icon
 * component, excluding 'variant', and  adding the following:
 * @param props.value - The boolean value of the button. If true, the button will be
 * rendered as "filled". If false, it will be rendered as "outlined".
 * @param props.onChange - A callback function that will be called when the button is
 * toggled. The callback will be passed the new value of the button.
 */
export declare const ToggleIcon: FunctionComponent<ToggleExtensionProps & Omit<Omit<import('./Icon').IconProps & import('react').RefAttributes<HTMLButtonElement> & import('../tooltip/wrap').WrapProps, "ref"> & import('react').RefAttributes<HTMLElement>, "value" | "onChange">>;
//# sourceMappingURL=Toggle.d.ts.map