import { ReactNode, ReactText } from 'react';
import { SystemProps } from '../system';
import { ThemingProps } from '../theme';
import { ChangeEventHandler, FocusEventHandler, PropsOf } from '../utils';
export type SwitchButtonProps = SystemProps & ThemingProps<'Switch'> & {
    /** Provides value to switch in controlled mode. */
    checked?: boolean;
    /** Deprecated. Please use variant instead. @deprecated  */
    colorScheme?: 'blue' | 'green' | 'prussian';
    /** Disables switch and related elements with the right styling. */
    disabled?: boolean;
    /** Displays custom content to the left of switch thumb. */
    innerLabelOff?: ReactNode;
    /** Displays custom content to the right of switch thumb. */
    innerLabelOn?: ReactNode;
    /** Props object passed to the inner input element. */
    inputProps?: PropsOf<'input', SystemProps>;
    /** Ref passed to the inner input element. */
    inputRef?: React.MutableRefObject<HTMLInputElement | null> | null;
    /** Passed to the inner input. */
    name?: string;
    /** Passed to the inner input. */
    onBlur?: FocusEventHandler;
    /** Passed to the inner input. */
    onChange?: ChangeEventHandler;
    /** Passed to the inner input. */
    onFocus?: FocusEventHandler;
    /** Passed to the inner input. */
    required?: boolean;
    /** Passed to the inner input. */
    value?: number | string;
};
export type SwitchContext = Pick<SwitchProps, 'checked' | 'colorScheme' | 'disabled' | 'name' | 'onBlur' | 'onChange' | 'onFocus' | 'required' | 'size' | 'value' | 'variant'> & {
    defaultChecked?: boolean;
};
export type SwitchProps = SystemProps & ThemingProps<'Switch'> & {
    /** Socket displaying a custom toggle button component. */
    button?: ReactNode;
    /** Provides value to switch button in controlled mode. */
    checked?: boolean;
    /** Deprecated. Please use variant instead. @deprecated  */
    colorScheme?: 'blue' | 'green' | 'prussian';
    /** Disables switch and related elements with the right styling. */
    disabled?: boolean;
    /** Displays custom content to the left of switch thumb. */
    innerLabelOff?: ReactNode;
    /** Displays custom content to the right of switch thumb. */
    innerLabelOn?: ReactNode;
    /** Props object passed to the inner input element. */
    inputProps?: PropsOf<'input', SystemProps>;
    /** Ref passed to the inner input element. */
    inputRef?: React.MutableRefObject<HTMLInputElement | null> | null;
    /** Socket displaying content on the left. */
    labelLeft?: ReactNode;
    /** Socket displaying content on the right. */
    labelRight?: ReactNode;
    /** Passed to the inner input. */
    name?: string;
    /** Passed to the inner input. */
    onBlur?: FocusEventHandler;
    /** Passed to the inner input. */
    onChange?: ChangeEventHandler;
    /** Passed to the inner input. */
    onFocus?: FocusEventHandler;
    /** Passed to the inner input. */
    required?: boolean;
    /** Passed to the inner input. */
    value?: ReactText;
};
//# sourceMappingURL=switch.types.d.ts.map