import '../../globals.js';
import '../../chipper/js/browser/initialize-globals.js';
import Property from '../../axon/js/Property.js';
import TReadOnlyProperty from '../../axon/js/TReadOnlyProperty.js';
import IntentionalAny from '../../phet-core/js/types/IntentionalAny.js';
import StrictOmit from '../../phet-core/js/types/StrictOmit.js';
import HotkeyData from '../../scenery/js/input/HotkeyData.js';
import Node, { NodeOptions } from '../../scenery/js/nodes/Node.js';
import { AccessibleSliderOptions } from '../../sun/js/accessibility/AccessibleSlider.js';
import IOType from '../../tandem/js/types/IOType.js';
type SelfOptions = {
    horizontalPipeLength?: number;
    verticalPipeLength?: number;
    tapToDispenseEnabled?: boolean;
    tapToDispenseAmount?: number;
    tapToDispenseInterval?: number;
    closeOnRelease?: boolean;
    interactiveProperty?: TReadOnlyProperty<boolean>;
    rasterizeHorizontalPipeNode?: boolean;
    shooterOptions?: ShooterNodeOptions;
};
type ParentOptions = AccessibleSliderOptions & NodeOptions;
export type FaucetNodeOptions = SelfOptions & StrictOmit<ParentOptions, 'interactiveHighlightEnabled' | 'enabledRangeProperty' | 'valueProperty'>;
declare const FaucetNode_base: typeof Node & import("../../phet-core.js").Constructor<{
    startDrag: (event: import("../../scenery.js").SceneryEvent) => void;
    drag: (event: import("../../scenery.js").SceneryEvent) => void;
    endDrag: (event: import("../../scenery.js").SceneryEvent | null) => void;
} & {
    startInput: import("../../scenery.js").SceneryListenerFunction;
    onInput: (event: import("../../scenery.js").SceneryEvent, oldValue: number) => void;
    endInput: (event: import("../../scenery.js").SceneryEvent | null) => void;
    constrainValue: ((value: number) => number);
    panTargetNode: Node | null;
    roundToStepSize: boolean;
    pdomMapPDOMValue: ((value: number) => number);
    pdomMapValue: ((newValue: number, previousValue: number) => number);
    pdomRepeatEqualValueText: boolean;
    pdomCreateAriaValueText: {
        (pdomMappedValue: number, newValue: number, valueOnStart: number | null): import("../../scenery.js").PDOMValueType | null;
        reset?: () => void;
    };
    pdomCreateContextResponseAlert: {
        (pdomMappedValue: number, newValue: number, valueOnStart: number): import("../../scenery.js").PDOMValueType | null;
        reset?: () => void;
    } | null;
    contextResponsePerValueChangeDelay: number;
    contextResponseMaxDelay: number;
    voicingOnEndResponseOptions: import("../../sun.js").VoicingOnEndResponseOptions;
    setPDOMDependencies(dependencies: TReadOnlyProperty<IntentionalAny>[]): void;
    getPDOMDependencies(): TReadOnlyProperty<IntentionalAny>[];
    pdomDependencies: TReadOnlyProperty<IntentionalAny>[];
    alertContextResponse(): void;
    reset(): void;
    getAccessibleValueHandlerInputListener(): import("../../scenery.js").TInputListener;
    handleKeyDown(event: import("../../scenery.js").SceneryEvent<KeyboardEvent>): void;
    handleKeyUp(event: import("../../scenery.js").SceneryEvent<KeyboardEvent>): void;
    handleChange(event: import("../../scenery.js").SceneryEvent): void;
    handleInput(event: import("../../scenery.js").SceneryEvent): void;
    handleBlur(event: import("../../scenery.js").SceneryEvent<FocusEvent>): void;
    setKeyboardStep(keyboardStep: number): void;
    keyboardStep: number;
    getKeyboardStep(): number;
    setShiftKeyboardStep(shiftKeyboardStep: number): void;
    shiftKeyboardStep: number;
    getShiftKeyboardStep(): number;
    getShiftKeyDown(): boolean;
    readonly shiftKeyDown: boolean;
    setPageKeyboardStep(pageKeyboardStep: number): void;
    pageKeyboardStep: number;
    getPageKeyboardStep(): number;
    setAriaOrientation(orientation: import("../../phet-core.js").Orientation): void;
    ariaOrientation: import("../../phet-core.js").Orientation;
    getAriaOrientation(): import("../../phet-core.js").Orientation;
    voicingOnEndResponse(valueOnStart: number, providedOptions?: import("../../sun.js").VoicingOnEndResponseOptions): void;
} & import("../../scenery.js").TVoicing<Node>>;
export default class FaucetNode extends FaucetNode_base {
    private readonly disposeFaucetNode;
    constructor(maxFlowRate: number, flowRateProperty: Property<number>, enabledProperty: TReadOnlyProperty<boolean>, providedOptions?: FaucetNodeOptions);
    dispose(): void;
    static readonly CLOSE_FAUCET_HOTKEY_DATA: HotkeyData;
    static readonly TAP_TO_DISPENSE_HOTKEY_DATA: HotkeyData;
    static FaucetNodeIO: IOType<any, any, any>;
}
type ShooterNodeSelfOptions = {
    knobScale?: number;
    touchAreaXDilation?: number;
    touchAreaYDilation?: number;
    mouseAreaXDilation?: number;
    mouseAreaYDilation?: number;
};
type ShooterNodeOptions = ShooterNodeSelfOptions;
export {};
