/**
 * Checkbox is a typical checkbox UI component.
 *
 * @author Chris Malley (PixelZoom, Inc.)
 */
import '../../globals.js';
import '../../chipper/js/browser/initialize-globals.js';
import type PhetioProperty from '../../axon/js/PhetioProperty.js';
import type TReadOnlyProperty from '../../axon/js/TReadOnlyProperty.js';
import type Bounds2 from '../../dot/js/Bounds2.js';
import type Shape from '../../kite/js/Shape.js';
import type StrictOmit from '../../phet-core/js/types/StrictOmit.js';
import { type VoicingOptions } from '../../scenery/js/accessibility/voicing/Voicing.js';
import { type WidthSizableOptions } from '../../scenery/js/layout/WidthSizable.js';
import Node, { type NodeOptions } from '../../scenery/js/nodes/Node.js';
import type TPaint from '../../scenery/js/util/TPaint.js';
import type TSoundPlayer from '../../tambo/js/TSoundPlayer.js';
import { type TAlertable } from '../../utterance-queue/js/Utterance.js';
type SelfOptions = {
    spacing?: number;
    boxWidth?: number;
    checkboxColor?: TPaint;
    checkboxColorBackground?: TPaint;
    touchAreaXDilation?: number;
    touchAreaYDilation?: number;
    mouseAreaXDilation?: number;
    mouseAreaYDilation?: number;
    checkedSoundPlayer?: TSoundPlayer;
    uncheckedSoundPlayer?: TSoundPlayer;
    checkedContextResponse?: TAlertable;
    uncheckedContextResponse?: TAlertable;
    voiceNameResponseOnSelection?: boolean;
    voicingCheckedObjectResponse?: TAlertable;
    voicingUncheckedObjectResponse?: TAlertable;
    phetioDisplayOnlyPropertyInstrumented?: boolean;
};
type ParentOptions = WidthSizableOptions & VoicingOptions & NodeOptions;
export type CheckboxOptions = SelfOptions & StrictOmit<ParentOptions, 'children' | 'mouseArea' | 'touchArea' | 'tagName'>;
declare const Checkbox_base: typeof Node & import("../../phet-core.js").Constructor<import("../../scenery/js/accessibility/voicing/Voicing.js").TVoicing<Node>> & import("../../phet-core.js").Constructor<import("../../scenery/js/layout/WidthSizable.js").TWidthSizable>;
export default class Checkbox extends Checkbox_base {
    private readonly backgroundNode;
    private readonly checkedNode;
    private readonly uncheckedNode;
    private readonly disposeCheckbox;
    _isMouseAreaCustomized: boolean;
    _isTouchAreaCustomized: boolean;
    _isSettingAreas: boolean;
    private readonly constraint;
    constructor(property: PhetioProperty<boolean>, content: Node, providedOptions?: CheckboxOptions);
    /**
     * The inputEnabledProperty for Checkbox is internally controlled by factors such as the displayOnlyProperty
     * and the enabledProperty.
     */
    setInputEnabledProperty(newTarget: TReadOnlyProperty<boolean> | null): this;
    dispose(): void;
    /**
     * Sets the background color of the checkbox.
     */
    setCheckboxColorBackground(value: TPaint): void;
    set checkboxColorBackground(value: TPaint);
    get checkboxColorBackground(): TPaint;
    /**
     * Gets the background color of the checkbox.
     */
    getCheckboxColorBackground(): TPaint;
    /**
     * Sets the color of the checkbox.
     */
    setCheckboxColor(value: TPaint): void;
    set checkboxColor(value: TPaint);
    get checkboxColor(): TPaint;
    /**
     * Gets the color of the checkbox.
     */
    getCheckboxColor(): TPaint;
    setMouseArea(area: Shape | Bounds2 | null): this;
    setTouchArea(area: Shape | Bounds2 | null): this;
}
export {};
//# sourceMappingURL=Checkbox.d.ts.map