/// <reference path="../../index.d.ts" />
import { JsxNode, PublicLitElement as LitElement, TargetedEvent } from '@arcgis/lumina';

type Layout = "horizontal" | "vertical";
type TickMode = "count" | "percent" | "value";
type TickValues = number[] | number;
/** [Read more...](https://developers.arcgis.com/javascript/latest/references/common-components/arcgis-ticks/) */
export declare class ArcgisTicks extends LitElement {
    /**
     * When `true`, the component will allow clicking on ticks.
     *
     * @default false
     */
    interactive: boolean;
    /**
     * The exponent used to interpolate the position of ticks along the component.
     * A value of `0` indicates linear interpolation. Positive values indicate exponential interpolation, and negative values indicate logarithmic interpolation.
     *
     * Set this property when the range of values is large and users need precision in the lower range of values (for an exponential interpolation), or in the higher range (for a logarithmic interpolation).
     *
     * ```tsx
     * <arcgis-ticks interpolation-exponent={14} min={1} max={5518000} mode="value" values={[1, 11500, 5518000]} />
     * ```
     *
     * @default 0
     */
    interpolationExponent: number;
    /** A function used to format each tick's label. */
    labelFormatter?: (value: number, defaultFormatter: (value: number) => string) => nullish | string;
    /**
     * Determines whether the labels are placed before or after the ticks.
     *
     * @default "trailing"
     */
    labelPlacement: "leading" | "trailing";
    /**
     * Determines the layout/orientation of the component.
     *
     * @default "horizontal"
     */
    layout: Layout;
    /**
     * The component's maximum rendered value.
     *
     * @default 100
     */
    max: number;
    /**
     * The component's minimum rendered value.
     *
     * @default 0
     */
    min: number;
    /**
     * When `true`, the values are displayed from high to low.
     *
     * @default false
     */
    mirrored: boolean;
    /**
     * The mode or method of positioning ticks along the component. It drives how [values](https://developers.arcgis.com/javascript/latest/references/common-components/arcgis-ticks/#values) is interpreted.
     * - `count`: Places a fixed number of ticks (provided in the [values](https://developers.arcgis.com/javascript/latest/references/common-components/arcgis-ticks/#values) property) at equal distances from each other.
     * - `percent`: [values](https://developers.arcgis.com/javascript/latest/references/common-components/arcgis-ticks/#values) is interpreted as percentage. If [values](https://developers.arcgis.com/javascript/latest/references/common-components/arcgis-ticks/#values) is a number, it indicates the interval between ticks. If it is an array, it indicates the percentage values at which to place the ticks.
     * - `value`: Indicates that ticks will only be placed at the values specified in the property.
     *
     * @default "count"
     * @see [values](https://developers.arcgis.com/javascript/latest/references/common-components/arcgis-ticks/#values)
     */
    mode: TickMode;
    /**
     * Indicates whether to render labels for the ticks.
     *
     * @default false
     */
    showLabels: boolean;
    /**
     * Indicates whether to render a line connecting the ticks.
     *
     * @default false
     */
    showBaseline: boolean;
    /**
     * Indicates where ticks will be rendered along the component.
     * See the description for [mode](https://developers.arcgis.com/javascript/latest/references/common-components/arcgis-ticks/#mode) for more information about how this property is interpreted by each mode.
     *
     * @see [mode](https://developers.arcgis.com/javascript/latest/references/common-components/arcgis-ticks/#mode)
     */
    values: TickValues;
    /** Fires when the user clicks on one of the ticks. */
    readonly arcgisTickClick: TargetedEvent<this, {
        value: number;
    }>;
    "@eventTypes": {
        "arcgisTickClick": ArcgisTicks["arcgisTickClick"]["detail"];
    };
}
export {};
