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) => { elevation: unknown extends Defaults["elevation"] ? Omit<{ type: (NumberConstructor | StringConstructor)[]; validator: (value: string | number) => boolean; }, "default" | "type"> & { type: PropType; default: NonNullable; } : Omit boolean; }, "default" | "type"> & { type: PropType; default: NonNullable; }, "default" | "type"> & { type: PropType; default: unknown extends Defaults["elevation"] ? string | number : Defaults["elevation"] | NonNullable; }; rounded: unknown extends Defaults["rounded"] ? { type: (BooleanConstructor | NumberConstructor | StringConstructor)[]; default: undefined; } : Omit<{ type: (BooleanConstructor | NumberConstructor | StringConstructor)[]; default: undefined; }, "default" | "type"> & { type: PropType; default: unknown extends Defaults["rounded"] ? string | number | boolean : Defaults["rounded"] | NonNullable; }; 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; }, "default" | "type"> & { type: PropType; default: unknown extends Defaults["disabled"] ? boolean | null : Defaults["disabled"] | NonNullable; }; 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; }, "default" | "type"> & { type: PropType; default: unknown extends Defaults["readonly"] ? boolean | null : Defaults["readonly"] | NonNullable; }; max: unknown extends Defaults["max"] ? { type: (NumberConstructor | StringConstructor)[]; default: number; } : Omit<{ type: (NumberConstructor | StringConstructor)[]; default: number; }, "default" | "type"> & { type: PropType; default: unknown extends Defaults["max"] ? string | number : Defaults["max"] | NonNullable; }; min: unknown extends Defaults["min"] ? { type: (NumberConstructor | StringConstructor)[]; default: number; } : Omit<{ type: (NumberConstructor | StringConstructor)[]; default: number; }, "default" | "type"> & { type: PropType; default: unknown extends Defaults["min"] ? string | number : Defaults["min"] | NonNullable; }; step: unknown extends Defaults["step"] ? { type: (NumberConstructor | StringConstructor)[]; default: number; } : Omit<{ type: (NumberConstructor | StringConstructor)[]; default: number; }, "default" | "type"> & { type: PropType; default: unknown extends Defaults["step"] ? string | number : Defaults["step"] | NonNullable; }; 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; }, "default" | "type"> & { type: PropType; default: unknown extends Defaults["thumbLabel"] ? "always" | "hover" | boolean | undefined : Defaults["thumbLabel"] | NonNullable<"always" | "hover" | boolean | undefined>; }; thumbSize: unknown extends Defaults["thumbSize"] ? { type: (NumberConstructor | StringConstructor)[]; default: number; } : Omit<{ type: (NumberConstructor | StringConstructor)[]; default: number; }, "default" | "type"> & { type: PropType; default: unknown extends Defaults["thumbSize"] ? string | number : Defaults["thumbSize"] | NonNullable; }; showTicks: unknown extends Defaults["showTicks"] ? { type: PropType; default: boolean; validator: (v: any) => boolean; } : Omit<{ type: PropType; default: boolean; validator: (v: any) => boolean; }, "default" | "type"> & { type: PropType; default: unknown extends Defaults["showTicks"] ? "always" | boolean : Defaults["showTicks"] | NonNullable<"always" | boolean>; }; ticks: unknown extends Defaults["ticks"] ? { type: PropType>; } : Omit<{ type: PropType>; }, "default" | "type"> & { type: PropType : readonly number[] | Record | Defaults["ticks"]>; default: unknown extends Defaults["ticks"] ? readonly number[] | Record : Defaults["ticks"] | NonNullable>; }; tickSize: unknown extends Defaults["tickSize"] ? { type: (NumberConstructor | StringConstructor)[]; default: number; } : Omit<{ type: (NumberConstructor | StringConstructor)[]; default: number; }, "default" | "type"> & { type: PropType; default: unknown extends Defaults["tickSize"] ? string | number : Defaults["tickSize"] | NonNullable; }; 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: (NumberConstructor | StringConstructor)[]; default: number; } : Omit<{ type: (NumberConstructor | StringConstructor)[]; default: number; }, "default" | "type"> & { type: PropType; default: unknown extends Defaults["trackSize"] ? string | number : Defaults["trackSize"] | NonNullable; }; 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; }, "default" | "type"> & { type: PropType; default: unknown extends Defaults["direction"] ? "horizontal" | "vertical" : Defaults["direction"] | NonNullable<"horizontal" | "vertical">; }; 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"]; }; ripple: unknown extends Defaults["ripple"] ? { type: BooleanConstructor; default: boolean; } : Omit<{ type: BooleanConstructor; default: boolean; }, "default" | "type"> & { type: PropType; default: unknown extends Defaults["ripple"] ? boolean : boolean | Defaults["ripple"]; }; }; 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;