import { WidgetBase } from '@dojo/framework/core/WidgetBase';
import { DNode } from '@dojo/framework/core/interfaces';
import { ThemedMixin, ThemedProperties } from '@dojo/framework/core/mixins/Themed';
import { FocusMixin, FocusProperties } from '@dojo/framework/core/mixins/Focus';
import { CustomAriaProperties, LabeledProperties, InputProperties, CheckboxRadioEventProperties, KeyEventProperties, PointerEventProperties } from '../common/interfaces';
/**
 * @type CheckboxProperties
 *
 * Properties that can be set on a Checkbox component
 *
 * @property checked        Checked/unchecked property of the radio
 * @property mode           The type of user interface to show for this Checkbox
 * @property offLabel       Label to show in the "off" positin of a toggle
 * @property onLabel        Label to show in the "on" positin of a toggle
 * @property value           The current value
 */
export interface CheckboxProperties extends ThemedProperties, InputProperties, FocusProperties, LabeledProperties, KeyEventProperties, PointerEventProperties, CustomAriaProperties, CheckboxRadioEventProperties {
    checked?: boolean;
    mode?: Mode;
    offLabel?: DNode;
    onLabel?: DNode;
    value?: string;
}
/**
 * The type of UI to show for this Checkbox
 */
export declare enum Mode {
    normal = "normal",
    toggle = "toggle"
}
declare const Checkbox_base: import("@dojo/framework/core/interfaces").Constructor<ThemedMixin<{}>> & typeof WidgetBase & import("@dojo/framework/core/interfaces").Constructor<FocusMixin>;
export declare class Checkbox extends Checkbox_base<CheckboxProperties> {
    private _onBlur;
    private _onChange;
    private _onClick;
    private _onFocus;
    private _onMouseDown;
    private _onMouseUp;
    private _onTouchStart;
    private _onTouchEnd;
    private _onTouchCancel;
    private _uuid;
    protected getRootClasses(): (string | null)[];
    protected renderToggle(): DNode[];
    protected render(): DNode;
}
export default Checkbox;
