import { IInvalidable } from '../../../Behaviors/Invalidable';
import { AutoToolTipPlacement } from '../../../Types/AutoToolTipPlacement';
import { TickPlacement } from '../../../Types/TickPlacement';
import { RangeBaseElement } from '../Abstracts/RangeBaseElement';
import { IScrubSliderElementProps } from './IScrubSliderElementProps';
declare const ScrubSliderElement_base: (abstract new (...args: Array<any>) => import("../../../Behaviors/Themeable").IThemeableProps) & (abstract new (...args: Array<any>) => import("../../../Behaviors/Orientable").IOrientableProps) & (abstract new (...args: Array<any>) => import("../../../Behaviors/Disableable").IDisableableProps) & (abstract new (...args: Array<any>) => import("../../../Behaviors/Variantable").IVariantableProps) & (abstract new (...args: Array<any>) => import("../../../Behaviors/Appearanceable").IAppearanceableProps) & (abstract new (...args: Array<any>) => import("../../../Behaviors/Focusable").IFocusableProps) & (abstract new (...args: Array<any>) => IInvalidable & import("../../../Behaviors/Invalidable").IInvalidableProps<unknown>) & typeof RangeBaseElement & import("../../../Behaviors/Themeable").IThemeableCtor;
/**
 * Scrub Slider – A customizable slider component for precise value selection.
 *
 * @description
 * The Scrub Slider component allows users to select a value from a range with precision.
 * It supports features like ticks, tooltips, and customizable step sizes.
 *
 * @element mosaik-scrub-slider
 * @category Ranges
 *
 * @slot hint - The hint slot.
 *
 * @csspart center - The center part.
 * @csspart hint - The hint part.
 * @csspart input - The input part.
 * @csspart labels - The labels part.
 * @csspart root - The root part.
 * @csspart surface - The surface part.
 * @csspart ticks bottom - The ticks bottom part.
 * @csspart ticks top - The ticks top part.
 *
 * @cssprop {String} --scrub-slider-background-color - The slider background color CSS custom property.
 * @cssprop {String} --scrub-slider-border-color - The slider border color CSS custom property.
 * @cssprop {String} --scrub-slider-border-radius - The slider border radius CSS custom property.
 * @cssprop {String} --scrub-slider-border-style - The slider border style CSS custom property.
 * @cssprop {String} --scrub-slider-border-width - The slider border width CSS custom property.
 * @cssprop {String} --scrub-slider-font-family - The slider font family CSS custom property.
 * @cssprop {String} --scrub-slider-font-letter-spacing - The slider font letter spacing CSS custom property.
 * @cssprop {String} --scrub-slider-font-line-height - The slider font line height CSS custom property.
 * @cssprop {String} --scrub-slider-font-size - The slider font size CSS custom property.
 * @cssprop {String} --scrub-slider-font-text-decoration - The slider font text decoration CSS custom property.
 * @cssprop {String} --scrub-slider-font-text-transform - The slider font text transform CSS custom property.
 * @cssprop {String} --scrub-slider-font-weight - The slider font weight CSS custom property.
 * @cssprop {String} --scrub-slider-foreground-color - The slider foreground color CSS custom property.
 * @cssprop {String} --scrub-slider-gap - The slider gap CSS custom property.
 * @cssprop {String} --scrub-slider-padding-bottom - The slider padding bottom CSS custom property.
 * @cssprop {String} --scrub-slider-padding-left - The slider padding left CSS custom property.
 * @cssprop {String} --scrub-slider-padding-right - The slider padding right CSS custom property.
 * @cssprop {String} --scrub-slider-padding-top - The slider padding top CSS custom property.
 * @cssprop {String} --scrub-slider-shadow - The slider shadow CSS custom property.
 * @cssprop {String} --scrub-slider-shadow-blur - The slider shadow blur CSS custom property.
 * @cssprop {String} --scrub-slider-shadow-color - The slider shadow color CSS custom property.
 * @cssprop {String} --scrub-slider-shadow-offset-x - The slider shadow offset x CSS custom property.
 * @cssprop {String} --scrub-slider-shadow-offset-y - The slider shadow offset y CSS custom property.
 * @cssprop {String} --scrub-slider-shadow-spread - The slider shadow spread CSS custom property.
 * @cssprop {String} --scrub-slider-thumb-background-color - The slider thumb background color CSS custom property.
 * @cssprop {String} --scrub-slider-thumb-border-color - The slider thumb border color CSS custom property.
 * @cssprop {String} --scrub-slider-thumb-border-radius - The slider thumb border radius CSS custom property.
 * @cssprop {String} --scrub-slider-thumb-border-style - The slider thumb border style CSS custom property.
 * @cssprop {String} --scrub-slider-thumb-border-width - The slider thumb border width CSS custom property.
 * @cssprop {String} --scrub-slider-thumb-foreground-color - The slider thumb foreground color CSS custom property.
 * @cssprop {String} --scrub-slider-thumb-size - The slider thumb size CSS custom property.
 * @cssprop {String} --scrub-slider-tick-gap - The slider tick gap CSS custom property.
 * @cssprop {String} --scrub-slider-tooltip-background-color - The slider tooltip background color CSS custom property.
 * @cssprop {String} --scrub-slider-tooltip-border-color - The slider tooltip border color CSS custom property.
 * @cssprop {String} --scrub-slider-tooltip-border-radius - The slider tooltip border radius CSS custom property.
 * @cssprop {String} --scrub-slider-tooltip-border-style - The slider tooltip border style CSS custom property.
 * @cssprop {String} --scrub-slider-tooltip-border-width - The slider tooltip border width CSS custom property.
 * @cssprop {String} --scrub-slider-tooltip-font-family - The slider tooltip font family CSS custom property.
 * @cssprop {String} --scrub-slider-tooltip-font-letter-spacing - The slider tooltip font letter spacing CSS custom property.
 * @cssprop {String} --scrub-slider-tooltip-font-line-height - The slider tooltip font line height CSS custom property.
 * @cssprop {String} --scrub-slider-tooltip-font-size - The slider tooltip font size CSS custom property.
 * @cssprop {String} --scrub-slider-tooltip-font-text-decoration - The slider tooltip font text decoration CSS custom property.
 * @cssprop {String} --scrub-slider-tooltip-font-text-transform - The slider tooltip font text transform CSS custom property.
 * @cssprop {String} --scrub-slider-tooltip-font-weight - The slider tooltip font weight CSS custom property.
 * @cssprop {String} --scrub-slider-tooltip-foreground-color - The slider tooltip foreground color CSS custom property.
 * @cssprop {String} --scrub-slider-tooltip-gap - The slider tooltip gap CSS custom property.
 * @cssprop {String} --scrub-slider-tooltip-padding-bottom - The slider tooltip padding bottom CSS custom property.
 * @cssprop {String} --scrub-slider-tooltip-padding-left - The slider tooltip padding left CSS custom property.
 * @cssprop {String} --scrub-slider-tooltip-padding-right - The slider tooltip padding right CSS custom property.
 * @cssprop {String} --scrub-slider-tooltip-padding-top - The slider tooltip padding top CSS custom property.
 * @cssprop {String} --scrub-slider-tooltip-shadow - The slider tooltip shadow CSS custom property.
 * @cssprop {String} --scrub-slider-tooltip-transition-duration - The slider tooltip transition duration CSS custom property.
 * @cssprop {String} --scrub-slider-tooltip-transition-mode - The slider tooltip transition mode CSS custom property.
 * @cssprop {String} --scrub-slider-tooltip-transition-property - The slider tooltip transition property CSS custom property.
 * @cssprop {String} --scrub-slider-track-size - The slider track size CSS custom property.
 * @cssprop {String} --scrub-slider-transition-duration - The slider transition duration CSS custom property.
 * @cssprop {String} --scrub-slider-transition-mode - The slider transition mode CSS custom property.
 * @cssprop {String} --scrub-slider-transition-property - The slider transition property CSS custom property.
 * @cssprop {String} --scrub-slider-translate - The slider translate CSS custom property.
 *
 * @example
 * Basic scrub slider:
 * ```html
 * <mosaik-scrub-slider min="0" max="100" value="50"></mosaik-scrub-slider>
 * ```
 *
 * @example
 * Scrub slider with ticks and track:
 * ```html
 * <mosaik-scrub-slider
 *   min="0"
 *   max="200"
 *   value="100"
 *   step="5"
 *   ticks="10"
 *   tick-placement="both"
 *   show-tick-labels
 *   track>
 * </mosaik-scrub-slider>
 * ```
 *
 * @example
 * Scrub slider with tooltip and custom pixels-per-step:
 * ```html
 * <mosaik-scrub-slider
 *   id="scrubber"
 *   min="0"
 *   max="1000"
 *   value="0"
 *   step="1"
 *   tooltip-placement="top"
 *   px-per-step="4"
 *   variant="primary">
 * </mosaik-scrub-slider>
 * <script>
 *   document.getElementById('scrubber').tooltipAccessor = (v) => `${v} ms`;
 * </script>
 * ```
 *
 * @public
 */
export declare class ScrubSliderElement extends ScrubSliderElement_base implements IScrubSliderElementProps, IInvalidable {
    private _inputElement;
    private _step;
    private _ticks;
    private _tickPlacement;
    private _tooltipPlacement;
    private _tooltipAccessor;
    private _track;
    private _showTickLabels;
    private _tickLabelAccessor;
    private _pxPerStep;
    private _accelerate;
    private _dragging;
    private _pointerId?;
    private _lastX;
    private _pxRemainder;
    private _bgOffsetPx;
    private readonly _inlineStyleController;
    constructor();
    static get is(): string;
    get step(): number;
    set step(value: number);
    get ticks(): number;
    set ticks(value: number);
    get tickPlacement(): TickPlacement;
    set tickPlacement(value: TickPlacement);
    get tooltipPlacement(): AutoToolTipPlacement;
    set tooltipPlacement(value: AutoToolTipPlacement);
    get tooltipAccessor(): (value: number) => string;
    set tooltipAccessor(value: (value: number) => string);
    get track(): boolean;
    set track(value: boolean);
    get showTickLabels(): boolean;
    set showTickLabels(value: boolean);
    get tickLabelAccessor(): (value: number) => string;
    set tickLabelAccessor(value: (value: number) => string);
    get pxPerStep(): number;
    set pxPerStep(v: number);
    /**
     * Accelerate the slider when dragging.
     *
     * @public
     * @default true
     */
    get accelerate(): boolean;
    set accelerate(v: boolean);
    /**
     * Checks the validity of the element and returns `true` if it is valid; otherwise, `false`.
     *
     * @public
     * @override
     */
    checkValidity(): boolean;
    protected onApplyTemplate(): void;
    private clamp;
    private applyTickOffset;
}
/** Namespace-Alias */
export declare namespace ScrubSliderElement {
    type Props = IScrubSliderElementProps;
}
declare global {
    interface HTMLElementTagNameMap {
        'mosaik-scrub-slider': ScrubSliderElement;
    }
}
export {};
//# sourceMappingURL=ScrubSliderElement.d.ts.map