import * as PropTypes from "prop-types";
import * as React from "react";
import "./Checkbox.less";
export interface Props {
    checked?: boolean;
    children: React.ReactNode;
    className?: string;
    disabled?: boolean;
    id?: string;
    onChange?: ({ id: string, checked: boolean, value: any }: {
        id: any;
        checked: any;
        value: any;
    }) => void;
    partial?: boolean;
    tabIndex?: number;
    value?: any;
}
/**
 * Form element for single or multiple selections from a list.
 * Common uses:
 *   - Use a checkbox for optional opt-in/out form elements
 *   - Use checkboxes when a user may view and select one or more options from a relatively short
 *     list of choices.
 *
 * W3C spec: https://www.w3.org/TR/wai-aria-practices-1.1/#checkbox
 */
export default class Checkbox extends React.PureComponent<Props> {
    static propTypes: {
        checked: PropTypes.Requireable<boolean>;
        children: PropTypes.Validator<PropTypes.ReactNodeLike>;
        className: PropTypes.Requireable<string>;
        disabled: PropTypes.Requireable<boolean>;
        id: PropTypes.Requireable<string>;
        onChange: PropTypes.Requireable<(...args: any[]) => any>;
        partial: PropTypes.Requireable<boolean>;
        tabIndex: PropTypes.Requireable<number>;
        value: PropTypes.Requireable<any>;
    };
    _element: any;
    _labelID: string;
    focus(): void;
    componentDidMount(): void;
    render(): JSX.Element;
    _onClick: () => void;
}
