import { type ReadSignal, type StoreContext } from 'maverick.js';
import { Component, type HTMLCustomElement } from 'maverick.js/element';
import { SliderStoreFactory } from './slider/api/store';
import type { SliderValueFormat } from './slider/format';
declare global {
interface MaverickElements {
'media-slider-value': MediaSliderValueElement;
}
}
/**
* Outputs the current slider value as text.
*
* @docs {@link https://www.vidstack.io/docs/player/components/sliders/slider-value}
* @example
* ```html
*
*
*
* ```
* @example
* ```html
*
* ```
* @example
* ```html
*
* ```
* @example
* ```html
*
* ```
*/
export declare class SliderValue extends Component {
static el: import("maverick.js/element").CustomElementDefinition;
protected _format: SliderValueFormat;
protected _text: ReadSignal;
protected _slider: StoreContext;
protected onAttach(): void;
protected _getText(): string;
render(): import("maverick.js").JSX.Element;
}
export interface MediaSliderValueElement extends HTMLCustomElement {
}
export interface SliderValueAPI {
props: SliderValueProps;
}
export interface SliderValueProps {
/**
* Whether to use the slider's current value, or pointer value.
*/
type: 'current' | 'pointer';
/**
* Determines how the value is formatted.
*/
format: 'percent' | 'time' | undefined;
/**
* Whether the time should always show the hours unit, even if the time is less than
* 1 hour. Only available if the `format` attribute is set to `time`.
*
* @example `20:30 -> 0:20:35`
*/
showHours: boolean;
/**
* Whether the hours unit should be padded with zeroes to a length of 2. Only available if
* the `format` attribute is set to `time`.
*
* @example `1:20:03 -> 01:20:03`
*/
padHours: boolean | null;
/**
* Whether the minutes unit should be padded with zeroes to a length of 2. Only available if
* the `format` attribute is set to `time`.
*
* @example `5:22 -> 05:22`
*/
padMinutes: boolean | null;
/**
* Round the value when formatted as a percentage to the given number of decimal places. Only
* available if `format` attribute is `percent`.
*/
decimalPlaces: number;
}