import '../../assert/js/assert.js';
import '../../globals.js';
/**
 * Shows a set of tick labels within or next to a chart.
 *
 * @author Sam Reid (PhET Interactive Simulations)
 */
import Bounds2 from '../../dot/js/Bounds2.js';
import Orientation from '../../phet-core/js/Orientation.js';
import { Node, Path, PathOptions } from '../../scenery/js/imports.js';
import ClippingType from './ClippingType.js';
import ChartTransform from './ChartTransform.js';
import StrictOmit from '../../phet-core/js/types/StrictOmit.js';
import Range from '../../dot/js/Range.js';
type SelfOptions = {
    value?: number;
    edge?: null | 'min' | 'max';
    origin?: number;
    skipCoordinates?: number[];
    extent?: number;
    clippingType?: ClippingType;
    createLabel?: (value: number) => Node | null;
    positionLabel?: (label: Node, tickBounds: Bounds2, axisOrientation: Orientation) => Node;
};
export type TickLabelSetOptions = SelfOptions & StrictOmit<PathOptions, 'children'>;
declare class TickLabelSet extends Path {
    private chartTransform;
    private readonly axisOrientation;
    private spacing;
    private readonly origin;
    private readonly skipCoordinates;
    private readonly extent;
    private readonly value;
    private readonly clippingType;
    private readonly edge;
    private createLabel;
    private readonly positionLabel;
    private labelMap;
    private readonly disposeTickLabelSet;
    /**
     * @param chartTransform
     * @param axisOrientation - the progression of the ticks.  For instance HORIZONTAL has ticks at x=0,1,2, etc.
     * @param spacing - in model coordinates
     * @param [providedOptions]
     */
    constructor(chartTransform: ChartTransform, axisOrientation: Orientation, spacing: number, providedOptions?: TickLabelSetOptions);
    setSpacing(spacing: number): void;
    getSpacing(): number;
    protected update(): void;
    /**
     * Clears the cache and updates the label set. Use this if you need to have new labels for values that are in
     * the cache. For example, if your createLabel function had logic to switch between numeric (e.g. 2) and
     * symbolic labels (e.g. '2L').
     */
    invalidateTickLabelSet(): void;
    setCreateLabel(createLabel: (value: number) => Node | null): void;
    dispose(): void;
    getSpacingBorders(): Range;
}
export default TickLabelSet;
//# sourceMappingURL=TickLabelSet.d.ts.map