import type { ExtractPropTypes, InjectionKey, PropType, Ref } from 'vue'; import type { VSliderTrack } from './VSliderTrack.js'; export type Tick = { value: number; position: number; label?: string; }; type SliderProvide = { activeThumbRef: Ref; color: Ref; decimals: Ref; direction: Ref<'vertical' | 'horizontal'>; disabled: Ref; elevation: Ref; min: Ref; max: Ref; mousePressed: Ref; noKeyboard: Ref; numTicks: Ref; onSliderMousedown: (e: MouseEvent) => void; onSliderTouchstart: (e: TouchEvent) => void; parseMouseMove: (e: MouseEvent | TouchEvent) => number | void; position: (val: number) => number; readonly: Ref; rounded: Ref; roundValue: (value: number) => number; thumbLabel: Ref; showTicks: Ref; startOffset: Ref; step: Ref; thumbSize: Ref; thumbColor: Ref; thumbLabelColor: Ref; trackColor: Ref; trackFillColor: Ref; trackSize: Ref; ticks: Ref | undefined>; tickSize: Ref; trackContainerRef: Ref; vertical: Ref; parsedTicks: Ref; hasLabels: Ref; isReversed: Ref; indexFromEnd: Ref; }; export declare const VSliderSymbol: InjectionKey; export declare function getOffset(e: MouseEvent | TouchEvent, el: HTMLElement, direction: string): number; export declare const makeSliderProps: (defaults?: Defaults | undefined) => { ripple: unknown extends Defaults["ripple"] ? { type: BooleanConstructor; default: boolean; } : Omit<{ type: BooleanConstructor; default: boolean; }, "type" | "default"> & { type: PropType; default: unknown extends Defaults["ripple"] ? boolean : boolean | Defaults["ripple"]; }; elevation: unknown extends Defaults["elevation"] ? Omit<{ type: (StringConstructor | NumberConstructor)[]; validator(v: any): boolean; }, "type" | "default"> & { type: PropType; default: NonNullable; } : Omit & { type: PropType; default: NonNullable; }, "type" | "default"> & { type: PropType; default: unknown extends Defaults["elevation"] ? string | number : NonNullable | Defaults["elevation"]; }; rounded: unknown extends Defaults["rounded"] ? { type: (StringConstructor | BooleanConstructor | NumberConstructor)[]; default: undefined; } : Omit<{ type: (StringConstructor | BooleanConstructor | NumberConstructor)[]; default: undefined; }, "type" | "default"> & { type: PropType; default: unknown extends Defaults["rounded"] ? string | number | boolean : NonNullable | Defaults["rounded"]; }; tile: unknown extends Defaults["tile"] ? BooleanConstructor : { type: PropType; default: unknown extends Defaults["tile"] ? boolean : boolean | Defaults["tile"]; }; disabled: unknown extends Defaults["disabled"] ? { type: PropType; default: null; } : Omit<{ type: PropType; default: null; }, "type" | "default"> & { type: PropType; default: unknown extends Defaults["disabled"] ? boolean | null : NonNullable | Defaults["disabled"]; }; error: unknown extends Defaults["error"] ? BooleanConstructor : { type: PropType; default: unknown extends Defaults["error"] ? boolean : boolean | Defaults["error"]; }; readonly: unknown extends Defaults["readonly"] ? { type: PropType; default: null; } : Omit<{ type: PropType; default: null; }, "type" | "default"> & { type: PropType; default: unknown extends Defaults["readonly"] ? boolean | null : NonNullable | Defaults["readonly"]; }; max: unknown extends Defaults["max"] ? { type: (StringConstructor | NumberConstructor)[]; default: number; } : Omit<{ type: (StringConstructor | NumberConstructor)[]; default: number; }, "type" | "default"> & { type: PropType; default: unknown extends Defaults["max"] ? string | number : NonNullable | Defaults["max"]; }; min: unknown extends Defaults["min"] ? { type: (StringConstructor | NumberConstructor)[]; default: number; } : Omit<{ type: (StringConstructor | NumberConstructor)[]; default: number; }, "type" | "default"> & { type: PropType; default: unknown extends Defaults["min"] ? string | number : NonNullable | Defaults["min"]; }; step: unknown extends Defaults["step"] ? { type: (StringConstructor | NumberConstructor)[]; default: number; } : Omit<{ type: (StringConstructor | NumberConstructor)[]; default: number; }, "type" | "default"> & { type: PropType; default: unknown extends Defaults["step"] ? string | number : NonNullable | Defaults["step"]; }; thumbColor: unknown extends Defaults["thumbColor"] ? StringConstructor : { type: PropType; default: unknown extends Defaults["thumbColor"] ? string : string | Defaults["thumbColor"]; }; thumbLabel: unknown extends Defaults["thumbLabel"] ? { type: PropType; default: undefined; validator: (v: any) => boolean; } : Omit<{ type: PropType; default: undefined; validator: (v: any) => boolean; }, "type" | "default"> & { type: PropType; default: unknown extends Defaults["thumbLabel"] ? boolean | "always" | undefined : Defaults["thumbLabel"] | NonNullable; }; thumbSize: unknown extends Defaults["thumbSize"] ? { type: (StringConstructor | NumberConstructor)[]; default: number; } : Omit<{ type: (StringConstructor | NumberConstructor)[]; default: number; }, "type" | "default"> & { type: PropType; default: unknown extends Defaults["thumbSize"] ? string | number : NonNullable | Defaults["thumbSize"]; }; showTicks: unknown extends Defaults["showTicks"] ? { type: PropType; default: boolean; validator: (v: any) => boolean; } : Omit<{ type: PropType; default: boolean; validator: (v: any) => boolean; }, "type" | "default"> & { type: PropType; default: unknown extends Defaults["showTicks"] ? boolean | "always" : Defaults["showTicks"] | NonNullable; }; ticks: unknown extends Defaults["ticks"] ? { type: PropType>; } : Omit<{ type: PropType>; }, "type" | "default"> & { type: PropType : readonly number[] | Record | Defaults["ticks"]>; default: unknown extends Defaults["ticks"] ? readonly number[] | Record : Defaults["ticks"] | NonNullable>; }; tickSize: unknown extends Defaults["tickSize"] ? { type: (StringConstructor | NumberConstructor)[]; default: number; } : Omit<{ type: (StringConstructor | NumberConstructor)[]; default: number; }, "type" | "default"> & { type: PropType; default: unknown extends Defaults["tickSize"] ? string | number : NonNullable | Defaults["tickSize"]; }; color: unknown extends Defaults["color"] ? StringConstructor : { type: PropType; default: unknown extends Defaults["color"] ? string : string | Defaults["color"]; }; trackColor: unknown extends Defaults["trackColor"] ? StringConstructor : { type: PropType; default: unknown extends Defaults["trackColor"] ? string : string | Defaults["trackColor"]; }; trackFillColor: unknown extends Defaults["trackFillColor"] ? StringConstructor : { type: PropType; default: unknown extends Defaults["trackFillColor"] ? string : string | Defaults["trackFillColor"]; }; trackSize: unknown extends Defaults["trackSize"] ? { type: (StringConstructor | NumberConstructor)[]; default: number; } : Omit<{ type: (StringConstructor | NumberConstructor)[]; default: number; }, "type" | "default"> & { type: PropType; default: unknown extends Defaults["trackSize"] ? string | number : NonNullable | Defaults["trackSize"]; }; direction: unknown extends Defaults["direction"] ? { type: PropType<"horizontal" | "vertical">; default: string; validator: (v: any) => boolean; } : Omit<{ type: PropType<"horizontal" | "vertical">; default: string; validator: (v: any) => boolean; }, "type" | "default"> & { type: PropType; default: unknown extends Defaults["direction"] ? "horizontal" | "vertical" : NonNullable<"horizontal" | "vertical"> | Defaults["direction"]; }; reverse: unknown extends Defaults["reverse"] ? BooleanConstructor : { type: PropType; default: unknown extends Defaults["reverse"] ? boolean : boolean | Defaults["reverse"]; }; noKeyboard: unknown extends Defaults["noKeyboard"] ? BooleanConstructor : { type: PropType; default: unknown extends Defaults["noKeyboard"] ? boolean : boolean | Defaults["noKeyboard"]; }; }; type SliderProps = ExtractPropTypes>; type SliderData = { value: number; }; export declare const useSteps: (props: SliderProps) => { min: import("vue").ComputedRef; max: import("vue").ComputedRef; step: import("vue").ComputedRef; decimals: import("vue").ComputedRef; roundValue: (value: string | number) => number; }; export declare const useSlider: ({ props, steps, onSliderStart, onSliderMove, onSliderEnd, getActiveThumb, }: { props: SliderProps; steps: ReturnType; onSliderEnd: (data: SliderData) => void; onSliderStart: (data: SliderData) => void; onSliderMove: (data: SliderData) => void; getActiveThumb: (e: MouseEvent | TouchEvent) => HTMLElement; }) => SliderProvide;