import React, { ChangeEvent, KeyboardEventHandler } from 'react';
import { TooltipPlacementsType } from '../tooltip';
import './checkbox.less';
import { ValueOf } from '../types';
export declare const CHECKBOX_PLACEMENTS: {
    readonly TOP: "top";
    readonly MIDDLE: "middle";
};
export type CheckboxPlacement = ValueOf<typeof CHECKBOX_PLACEMENTS>;
export type CheckboxProps = {
    isChecked?: boolean;
    indeterminate?: boolean;
    isDisabled?: boolean;
    labelText?: React.ReactNode;
    subtext?: string;
    id: string;
    testId?: string;
    /** Form field onChange hand ler. The default is noop, which  can be useful for disabled el ements. */
    onChange?: (e: ChangeEvent<HTMLInputElement>) => void;
    onKeyDown?: KeyboardEventHandler;
    /** Custom class for the label */
    className?: string;
    /** Should label truncate if the container with fixed width and provide full text in the tooltip */
    isTruncatable?: boolean;
    tooltipDocsLink?: React.ReactNode;
    /** Add custom tooltip placement */
    tooltipPlacement?: TooltipPlacementsType;
    /**  Add custom tooltip text */
    tooltipText?: string;
    /** Options for positioning relatively to a located space */
    placement?: CheckboxPlacement;
    /** aria-label to be applied for the cases when checkboxes is rendered without explicit label for some reason */
    ariaLabel?: string;
    /** optional tabIndex for cases when we have to overwrite default value (0) */
    tabIndex?: number;
    role?: string;
    hasParentTooltip?: boolean;
};
/** Checkboxes are used for a list of options where the user may select multiple options.
 * [CAPITALIZATION] Use sentence case for labels
 * @midnight-gray-supported
 * @alpine-light-supported
 */
declare const Checkbox: React.ForwardRefExoticComponent<CheckboxProps & React.RefAttributes<HTMLInputElement>>;
export default Checkbox;
