import { Mark } from '../../../../types/src/range';
import { ReactiveController, ReactiveControllerHost } from 'lit';
import { default as CxRange } from './range';

/** A reactive controller to manage the rendering of marks for the range component. */
export declare class MarkController implements ReactiveController {
    private readonly host;
    private readonly localize;
    private readonly marksContainerRef;
    private containerWidth;
    private marksWithLabels;
    constructor(host: ReactiveControllerHost & CxRange);
    hostConnected(): void;
    hostDisconnected(): void;
    hostUpdated(): void;
    /**
     * Gets all mark elements from the datalist slot.
     * @returns NodeList of option elements or null
     */
    getAllMarks(): NodeListOf<HTMLElement> | undefined;
    /**
     * Initializes marks based on the datalist slot or auto-generates them from step.
     * @returns Array of valid mark objects
     */
    initMarks(): Mark[];
    renderMark(mark: Mark): import('lit').TemplateResult<1>;
    /**
     * Calculates which marks should display labels based on available width.
     * Uses a minimum spacing between labels to prevent overcrowding.
     */
    private calculateVisibleLabels;
    handleResize(): void;
    renderMarks(): import('lit').TemplateResult<1>;
}
