import Component from '@glimmer/component';
import { htmlSafe } from '@ember/template';
import { LEVEL_COLORS } from './eui-range-levels.gts';
import type { EuiRangeLevel } from './eui-range-levels';
export { LEVEL_COLORS };
export interface EuiRangeTick {
    value: number;
    label: Component;
}
type Value = number | string;
export type EuiRangeTrackArgs = {
    min: number;
    max: number;
    step?: number;
    value?: Value | Value[];
    compressed?: boolean;
    disabled?: boolean;
    showTicks?: boolean;
    tickInterval?: number;
    ticks?: EuiRangeTick[];
    onChange?: (e: MouseEvent) => void;
    levels?: EuiRangeLevel[];
};
type Styling = {
    tickSequence?: number[];
    styles: ReturnType<typeof htmlSafe>;
};
export interface EuiRangeTrackSignature {
    Element: HTMLElement;
    Args: EuiRangeTrackArgs;
    Blocks: {
        default: [];
    };
}
export default class EuiRangeTrackComponent extends Component<EuiRangeTrackSignature> {
    trackEl?: HTMLElement;
    registerTrack(el: HTMLElement): void;
    validateValueIsInStep(value: number): number;
    calculateSequence(min: EuiRangeTrackArgs['min'], max: EuiRangeTrackArgs['max'], interval?: EuiRangeTrackArgs['tickInterval']): number[];
    calculateTicks(min: EuiRangeTrackArgs['min'], max: EuiRangeTrackArgs['max'], step?: EuiRangeTrackArgs['step'], tickInterval?: EuiRangeTrackArgs['tickInterval'], customTicks?: EuiRangeTick[]): number[];
    get derivedState(): Styling;
    willDestroy(): void;
}
//# sourceMappingURL=eui-range-track.d.ts.map