import { TickLabelPosition } from '../../../Types/TickLabelPosition';
import { CustomElement } from '../../Abstracts/CustomElement';
import { ITickBarElementProps } from './ITickBarElementProps';
declare const TickBarElement_base: (abstract new (...args: Array<any>) => import("../../../Behaviors/Themeable").IThemeableProps) & (abstract new (...args: Array<any>) => import("../../../Behaviors/Disableable").IDisableableProps) & (abstract new (...args: Array<any>) => import("../../../Behaviors/Orientable").IOrientableProps) & typeof CustomElement & import("../../../Behaviors/Themeable").IThemeableCtor;
/**
 * Tick Bar - A visual element that represents a bar with alternating upward and downward motion, commonly used to indicate ongoing processes or loading states within an application.
 *
 * @public
 */
export declare class TickBarElement extends TickBarElement_base implements ITickBarElementProps {
    private _min;
    private _max;
    private _interval;
    private _showLabels;
    private _labelAccessor;
    private _labelPosition;
    private _ticks;
    /**
     * @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 `min` property.
     *
     * @public
     * @attr
     */
    get min(): number;
    set min(value: number);
    /**
     * Gets or sets the `max` property.
     *
     * @public
     * @attr
     */
    get max(): number;
    set max(value: number);
    /**
     * Gets or sets the `interval` property.
     *
     * @public
     * @attr
     */
    get interval(): number;
    set interval(value: number);
    /**
     * Gets the `ticks` property.
     *
     * @public
     * @readonly
     */
    get ticks(): Array<number>;
    private set ticks(value);
    /**
     * Gets or sets the `showLabels` property.
     *
     * @public
     * @attr
     */
    get showLabels(): boolean;
    set showLabels(value: boolean);
    /**
     * Gets or sets the `labelAccessor` property.
     *
     * @public
     */
    get labelAccessor(): (value: number, index: number) => string;
    set labelAccessor(value: (value: number, index: number) => string);
    /**
     * Gets or sets the `labelPosition` property.
     *
     * @public
     * @attr
     */
    get labelPosition(): TickLabelPosition;
    set labelPosition(value: TickLabelPosition);
    /**
     * Calculates the position of a tick mark as a percentage.
     *
     * @private
     * @template
     * @param tick - The tick mark value.
     * @returns The position as a percentage.
     */
    calculateTickPosition(tick: number): number;
    /**
     * @protected
     */
    protected onMinPropertyChanged(prev: number, next: number): void;
    /**
     * @protected
     */
    protected onMaxPropertyChanged(prev: number, next: number): void;
    /**
     * @protected
     */
    protected onIntervalPropertyChanged(prev: number, next: number): void;
    /**
     * Updates the tick positions.
     *
     * @private
     */
    private updateTicks;
}
/**
 * @public
 */
export declare namespace TickBarElement {
    type Props = ITickBarElementProps;
}
/**
 * @public
 */
declare global {
    interface HTMLElementTagNameMap {
        'mosaik-tick-bar': TickBarElement;
    }
}
export {};
//# sourceMappingURL=TickBarElement.d.ts.map