import * as React from 'react';
interface Props<T> {
    prefixCls: string;
    className: string;
    style: React.CSSProperties;
    optionType: 'default' | 'button';
    defaultChecked: boolean;
    checked?: boolean;
    disabled?: boolean;
    name?: string;
    id?: string;
    type?: string;
    readOnly?: boolean;
    tabIndex?: number;
    autoFocus?: boolean;
    value?: any;
    required?: boolean;
    onClick?: React.MouseEventHandler<HTMLElement>;
    onFocus?: (e: React.FocusEvent<HTMLElement>) => void;
    onBlur?: (e: React.SyntheticEvent<HTMLElement>) => void;
    onChange?: (e: T) => void;
    onKeyDown?: (e: React.KeyboardEvent<HTMLElement>) => void;
    onKeyPress?: (e: React.KeyboardEvent<HTMLElement>) => void;
    onKeyUp?: (e: React.KeyboardEvent<HTMLElement>) => void;
}
export interface CheckboxChangeEventTarget extends CheckboxProps {
    checked: boolean;
}
export interface CheckboxChangeEvent {
    target: CheckboxChangeEventTarget;
    stopPropagation: () => void;
    preventDefault: () => void;
    nativeEvent: MouseEvent;
}
export interface CheckboxProps extends Props<CheckboxChangeEvent> {
    indeterminate?: boolean;
}
interface State {
    checked: boolean;
}
declare class BaseCheckbox extends React.Component<CheckboxProps, ReturnType<typeof BaseCheckbox['getDerivedStateFromProps']>> {
    static defaultProps: {
        prefixCls: string;
        className: string;
        style: {};
        type: string;
        optionType: string;
        defaultChecked: boolean;
    };
    input: HTMLInputElement;
    constructor(props: any);
    static getDerivedStateFromProps(props: CheckboxProps, state: State): Partial<State> | null;
    focus(): void;
    blur(): void;
    handleChange: (e: any) => void;
    saveInput: (node: any) => void;
    render(): React.JSX.Element;
}
export default BaseCheckbox;
