import '../../chipper/js/initialize-globals.js';
import '../../assert/js/assert.js';
import '../../tandem/js/PhetioIDUtils.js';
import '../../globals.js';
import PhetioProperty from '../../axon/js/PhetioProperty.js';
import TReadOnlyProperty from '../../axon/js/TReadOnlyProperty.js';
import Dimension2 from '../../dot/js/Dimension2.js';
import Range from '../../dot/js/Range.js';
import Orientation from '../../phet-core/js/Orientation.js';
import PickOptional from '../../phet-core/js/types/PickOptional.js';
import StrictOmit from '../../phet-core/js/types/StrictOmit.js';
import { DragListener, Node, NodeOptions, TPaint } from '../../scenery/js/imports.js';
import ValueChangeSoundPlayer, { ValueChangeSoundPlayerOptions } from '../../tambo/js/sound-generators/ValueChangeSoundPlayer.js';
import PhetioObject from '../../tandem/js/PhetioObject.js';
import IOType from '../../tandem/js/types/IOType.js';
import { AccessibleSliderOptions } from './accessibility/AccessibleSlider.js';
import { SliderTickOptions } from './SliderTick.js';
import SliderTrack from './SliderTrack.js';
type SelfOptions = {
    orientation?: Orientation;
    trackNode?: SliderTrack | null;
    trackSize?: Dimension2 | null;
    trackFillEnabled?: TPaint;
    trackFillDisabled?: TPaint;
    trackStroke?: TPaint;
    trackLineWidth?: number;
    trackCornerRadius?: number;
    trackPickable?: boolean;
    thumbNode?: Node | null;
    thumbSize?: Dimension2 | null;
    thumbFill?: TPaint;
    thumbFillHighlighted?: TPaint;
    thumbStroke?: TPaint;
    thumbLineWidth?: number;
    thumbCenterLineStroke?: TPaint;
    thumbTouchAreaXDilation?: number;
    thumbTouchAreaYDilation?: number;
    thumbMouseAreaXDilation?: number;
    thumbMouseAreaYDilation?: number;
    thumbYOffset?: number;
    cursor?: string;
    disabledOpacity?: number;
    phetioLinkedProperty?: PhetioObject | null;
    soundGenerator?: ValueChangeSoundPlayer | null;
    valueChangeSoundGeneratorOptions?: ValueChangeSoundPlayerOptions;
} & SliderTickOptions;
type ParentOptions = AccessibleSliderOptions & NodeOptions;
type RequiredParentOptionsSuppliedBySlider = 'panTargetNode' | 'valueProperty' | 'enabledRangeProperty' | 'ariaOrientation';
type OptionalParentOptions = StrictOmit<ParentOptions, RequiredParentOptionsSuppliedBySlider>;
export type SliderOptions = SelfOptions & OptionalParentOptions & PickOptional<ParentOptions, 'enabledRangeProperty'>;
declare const Slider_base: typeof Node & import("../../phet-core/js/types/Constructor.js").default<{
    startDrag: (event: import("../../scenery/js/imports.js").SceneryEvent) => void;
    drag: (event: import("../../scenery/js/imports.js").SceneryEvent) => void;
    endDrag: (event: import("../../scenery/js/imports.js").SceneryEvent | null) => void;
} & {
    startInput: import("../../scenery/js/imports.js").SceneryListenerFunction;
    onInput: (event: import("../../scenery/js/imports.js").SceneryEvent, oldValue: number) => void;
    endInput: (event: import("../../scenery/js/imports.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/imports.js").PDOMValueType | null;
        reset?: () => void;
    };
    pdomCreateContextResponseAlert: {
        (pdomMappedValue: number, newValue: number, valueOnStart: number | null): import("../../scenery/js/imports.js").PDOMValueType | null;
        reset?: () => void;
    } | null;
    contextResponsePerValueChangeDelay: number;
    contextResponseMaxDelay: number;
    voicingOnEndResponseOptions: import("./accessibility/AccessibleValueHandler.js").VoicingOnEndResponseOptions;
    setPDOMDependencies(dependencies: TReadOnlyProperty<import("../../phet-core/js/types/IntentionalAny.js").default>[]): void;
    getPDOMDependencies(): TReadOnlyProperty<import("../../phet-core/js/types/IntentionalAny.js").default>[];
    pdomDependencies: TReadOnlyProperty<import("../../phet-core/js/types/IntentionalAny.js").default>[];
    alertContextResponse(): void;
    reset(): void;
    getAccessibleValueHandlerInputListener(): import("../../scenery/js/imports.js").TInputListener;
    handleKeyDown(event: import("../../scenery/js/imports.js").SceneryEvent<KeyboardEvent>): void;
    handleKeyUp(event: import("../../scenery/js/imports.js").SceneryEvent<KeyboardEvent>): void;
    handleChange(event: import("../../scenery/js/imports.js").SceneryEvent): void;
    handleInput(event: import("../../scenery/js/imports.js").SceneryEvent): void;
    handleBlur(event: import("../../scenery/js/imports.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: Orientation): void;
    ariaOrientation: Orientation;
    getAriaOrientation(): Orientation;
    voicingOnEndResponse(valueOnStart: number, providedOptions?: import("./accessibility/AccessibleValueHandler.js").VoicingOnEndResponseOptions): void;
} & import("../../scenery/js/imports.js").TVoicing<Node>> & import("../../phet-core/js/types/Constructor.js").default<import("../../scenery/js/imports.js").TWidthSizable & import("../../scenery/js/imports.js").THeightSizable & {
    validateLocalPreferredSize(): void;
}>;
export default class Slider extends Slider_base {
    readonly enabledRangeProperty: TReadOnlyProperty<Range>;
    readonly thumbDragListener: DragListener;
    readonly trackDragListener: DragListener;
    private readonly orientation;
    private readonly tickOptions;
    private readonly majorTicksParent;
    private readonly minorTicksParent;
    private readonly track;
    private readonly disposeSlider;
    private readonly ticks;
    static readonly DEFAULT_SOUND_GENERATOR: ValueChangeSoundPlayer;
    private proposedValue;
    constructor(valueProperty: PhetioProperty<number>, range: Range | TReadOnlyProperty<Range>, providedOptions?: SliderOptions);
    get majorTicksVisible(): boolean;
    set majorTicksVisible(value: boolean);
    get minorTicksVisible(): boolean;
    set minorTicksVisible(value: boolean);
    dispose(): void;
    /**
     * Adds a major tick mark.
     */
    addMajorTick(value: number, label?: Node): void;
    /**
     * Adds a minor tick mark.
     */
    addMinorTick(value: number, label?: Node): void;
    /**
     * Adds a tick mark above the track.
     */
    private addTick;
    setMajorTicksVisible(visible: boolean): void;
    getMajorTicksVisible(): boolean;
    setMinorTicksVisible(visible: boolean): void;
    getMinorTicksVisible(): boolean;
    static readonly THUMB_NODE_TANDEM_NAME: "thumbNode";
    static readonly TRACK_NODE_TANDEM_NAME: "trackNode";
    static readonly SliderIO: IOType<any, any, any>;
}
export {};
//# sourceMappingURL=Slider.d.ts.map