import { FormControlValue } from '../internal/types.js'; import { FormControlMixinInstance } from './index.js'; type Constructor = (new (...args: any[]) => HTMLElement & { connectedCallback?(): void; attributeChangedCallback?(name: string, oldValue: string | null, newValue: string | null): void; requestUpdate?(name?: string, oldValue?: unknown): void; }) & { observedAttributes?: string[]; }; export type SliderFormControlValue = Extract; export interface SliderFormControlMixinInstance extends FormControlMixinInstance { /** * Defines the maximum slider value. * https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/range#max * @attr max * @reflect */ max: number; /** * Defines the minimum slider value. * https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/range#min * @attr min * @reflect */ min: number; /** * Defines the slider value granularity. * https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/range#step * @attr step * @reflect */ step: number; /** * The current slider value. * https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/range#value * @attr value * @reflect */ value: number; /** * The current slider value as a number. * https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/valueAsNumber */ valueAsNumber: number; updateSliderState(): void; } export interface SliderFormControlDefaults { max?: number; min?: number; step?: number; value?: number; } export type SliderFormControlMixinReturn = (new (...args: ConstructorParameters) => InstanceType & SliderFormControlMixinInstance) & { formAssociated: boolean; observedAttributes: string[]; sliderDefaults: SliderFormControlDefaults; } & Omit; /** * @description A mixin that adds native range input-style form control behavior. */ export declare function SliderFormControlMixin(SuperClass: TBase): SliderFormControlMixinReturn; export {};