import * as React from 'react';
import type { SwitchChangeEventHandler, SwitchClickEventHandler } from '@rc-component/switch';
import type { GenerateSemantic } from '../_util/hooks/useMergeSemantic/semanticType';
import type { SizeType } from '../config-provider/SizeContext';
/**
 * Note: `default` is deprecated and will be removed in v7, please use `medium` instead.
 */
export type SwitchSize = Exclude<SizeType, 'large'> | 'default';
export type { SwitchChangeEventHandler, SwitchClickEventHandler };
export type SwitchSemanticType = {
    classNames?: {
        root?: string;
        content?: string;
        indicator?: string;
    };
    styles?: {
        root?: React.CSSProperties;
        content?: React.CSSProperties;
        indicator?: React.CSSProperties;
    };
};
export type SwitchSemanticAllType = GenerateSemantic<SwitchSemanticType, SwitchProps>;
export interface SwitchProps {
    prefixCls?: string;
    size?: SwitchSize;
    className?: string;
    rootClassName?: string;
    checked?: boolean;
    defaultChecked?: boolean;
    /**
     * Alias for `checked`.
     * @since 5.12.0
     */
    value?: boolean;
    /**
     * Alias for `defaultChecked`.
     * @since 5.12.0
     */
    defaultValue?: boolean;
    onChange?: SwitchChangeEventHandler;
    onClick?: SwitchClickEventHandler;
    checkedChildren?: React.ReactNode;
    unCheckedChildren?: React.ReactNode;
    disabled?: boolean;
    loading?: boolean;
    autoFocus?: boolean;
    style?: React.CSSProperties;
    title?: string;
    tabIndex?: number;
    id?: string;
    classNames?: SwitchSemanticAllType['classNamesAndFn'];
    styles?: SwitchSemanticAllType['stylesAndFn'];
}
declare const InternalSwitch: React.ForwardRefExoticComponent<SwitchProps & React.RefAttributes<HTMLButtonElement>>;
type CompoundedComponent = typeof InternalSwitch & {};
declare const Switch: CompoundedComponent;
export default Switch;
