import { AutoToolTipPlacement } from '../../../Types/AutoToolTipPlacement';
import { TickPlacement } from '../../../Types/TickPlacement';
import { RangeBaseElement } from '../Abstracts/RangeBaseElement';
import type { ISliderElementProps } from './ISliderElementProps';
import { IInvalidable } from '../../../Behaviors/Invalidable';
declare const SliderElement_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;
/**
 * Slider - An interactive range input allowing users to select values by dragging a handle along a track.
 *
 * Provides precise value selection within defined ranges through mouse, touch, and keyboard interaction.
 * Supports horizontal and vertical orientations, tick marks, tooltips, and custom styling.
 * Essential for settings controls, filters, and any numeric value input requiring visual feedback.
 *
 * @name SliderElement
 * @element mosaik-slider
 * @category Ranges
 *
 * @slot prefix - Content displayed before the slider track (e.g., min value label)
 * @slot suffix - Content displayed after the slider track (e.g., max value label)
 *
 * @csspart track - The background track of the slider
 * @csspart fill - The filled portion of the track indicating current value
 * @csspart thumb - The draggable handle for value selection
 * @csspart tick-marks - Container for tick mark indicators
 * @csspart tooltip - Value tooltip displayed during interaction
 *
 * @cssprop --slider-track-height - Height of horizontal slider tracks
 * @cssprop --slider-track-width - Width of vertical slider tracks
 * @cssprop --slider-track-color - Background color of the slider track
 * @cssprop --slider-fill-color - Color of the filled track portion
 * @cssprop --slider-thumb-size - Size of the draggable thumb handle
 * @cssprop --slider-thumb-color - Color of the thumb handle
 * @cssprop --slider-thumb-border-radius - Border radius of the thumb
 * @cssprop --slider-tick-color - Color of tick mark indicators
 * @cssprop --slider-tooltip-background - Background color of value tooltips
 *
 * @dependency TextElement - For rendering labels and tooltip text
 * @dependency TickBarElement - For displaying tick marks and indicators
 *
 * @example
 * ```html
 * <!-- Basic slider -->
 * <mosaik-slider min="0" max="100" value="50"></mosaik-slider>
 *
 * <!-- Volume slider with prefix/suffix -->
 * <mosaik-slider min="0" max="100" value="75">
 *   <mosaik-icon slot="prefix" data="volume-off"></mosaik-icon>
 *   <mosaik-icon slot="suffix" data="volume-up"></mosaik-icon>
 * </mosaik-slider>
 *
 * <!-- Slider with tick marks -->
 * <mosaik-slider
 *   min="0"
 *   max="10"
 *   value="5"
 *   step="1"
 *   tick-placement="both"
 *   tooltip-placement="top">
 * </mosaik-slider>
 *
 * <!-- Vertical brightness slider -->
 * <mosaik-slider
 *   min="0"
 *   max="255"
 *   value="128"
 *   orientation="vertical"
 *   appearance="primary">
 * </mosaik-slider>
 *
 * <!-- Range slider with custom styling -->
 * <div class="price-range">
 *   <label>Price Range</label>
 *   <mosaik-slider
 *     min="0"
 *     max="1000"
 *     value="250"
 *     step="10">
 *     <span slot="prefix">$0</span>
 *     <span slot="suffix">$1000</span>
 *   </mosaik-slider>
 * </div>
 * ```
 *
 * @public
 */
export declare class SliderElement extends SliderElement_base implements ISliderElementProps, IInvalidable {
    private _inputElement;
    private _step;
    private _ticks;
    private _tickPlacement;
    private _tooltipPlacement;
    private _tooltipAccessor;
    private _track;
    private _showTickLabels;
    private _tickLabelAccessor;
    /**
     * @public
     */
    constructor();
    /**
     * Returns the `{@link is}` property.
     * The `{@link is}` property represents natural name of this element.
     *
     * @public
     * @static
     * @readonly
     */
    static get is(): string;
    /**
     * Gets or sets the `step` property.
     *
     * @public
     * @attr
     */
    get step(): number;
    set step(value: number);
    /**
     * Gets or sets the `ticks` property.
     *
     * @public
     * @attr
     */
    get ticks(): number;
    set ticks(value: number);
    /**
     * Gets or sets the `tickPlacement` property.
     *
     * @public
     * @attr
     */
    get tickPlacement(): TickPlacement;
    set tickPlacement(value: TickPlacement);
    /**
     * Gets or sets the `tooltipPlacement` property.
     *
     * @public
     * @attr
     */
    get tooltipPlacement(): AutoToolTipPlacement;
    set tooltipPlacement(value: AutoToolTipPlacement);
    /**
     * Gets or sets the `tooltipAccessor` property.
     *
     * @public
     */
    get tooltipAccessor(): (value: number) => string;
    set tooltipAccessor(value: (value: number) => string);
    /**
     * Gets or sets the `track` property.
     *
     * @public
     * @attr
     */
    get track(): boolean;
    set track(value: boolean);
    /**
     * Gets or sets the `showTickLabels` property.
     *
     * @public
     * @attr
     */
    get showTickLabels(): boolean;
    set showTickLabels(value: boolean);
    /**
     * Gets or sets the `tickLabelAccessor` property.
     *
     * @public
     */
    get tickLabelAccessor(): (value: number) => string;
    set tickLabelAccessor(value: (value: number) => string);
    /**
     * Decrements the value by the value given by the `Step` property.
     * If the optional parameter is used, it will decrement the step value multiplied by the parameter's value.
     *
     * @public
     * @param value - Value to decrement the value by.
     */
    stepDown(value?: number): void;
    /**
     * Increments the value by the value given by the `Step` property.
     * If the optional parameter is used, will increment the step value by that value.
     *
     * @public
     * @param value - Value to increment the value by.
     */
    stepUp(value?: number): void;
    /**
     * Checks the validity of the element and returns `true` if it is valid; otherwise, `false`.
     *
     * @public
     * @override
     */
    checkValidity(): boolean;
    /**
     * @protected
     */
    protected onApplyTemplate(): void;
}
/**
 * @public
 */
export declare namespace SliderElement {
    type Props = ISliderElementProps;
}
/**
 * @public
 */
declare global {
    interface HTMLElementTagNameMap {
        'mosaik-slider': SliderElement;
    }
}
export {};
//# sourceMappingURL=SliderElement.d.ts.map