import type { InstantFormat } from './formatInstant';
/**
 * Formats available to a tooltip line.
 *
 * Every `TimestampFormat` that names a fixed instant, plus `'full'` — the long
 * absolute style the tooltip has always shown ("February 19, 2026 at 5:00:00 PM
 * UTC"). `'relative'`, `'relative_short'`, and `'auto'` are excluded: a
 * relative phrase ignores any zone, which would make `timezoneID` silently
 * inert on that line.
 *
 * `'full'` lives only in this vocabulary, never in `TimestampFormat` — nothing
 * asked for it as a visible display format, and keeping it out means new
 * members added to `TimestampFormat` become valid tooltip formats for free.
 *
 * The public spelling of {@link InstantFormat}: consumers reading Timestamp's
 * props should not have to know the name of its internal formatter.
 */
export type TimestampTooltipFormat = InstantFormat;
/** One line of the Timestamp tooltip. */
export interface TimestampTooltipEntry {
    /**
     * IANA time zone identifier, e.g. `'UTC'`, `'America/Los_Angeles'`.
     * Omit it — or pass `'local'` — for the viewer's own zone.
     *
     * Prefer region identifiers. Fixed-offset abbreviations such as `'EST'` are
     * accepted by the platform but never observe daylight saving, so they read
     * an hour wrong for half the year — `'America/New_York'` is what people
     * usually mean by "Eastern".
     *
     * An identifier the platform does not recognize falls back to the viewer's
     * zone with a console warning rather than throwing.
     */
    timezoneID?: string;
    /**
     * How this line renders the instant.
     * @default 'full'
     */
    format?: TimestampTooltipFormat;
    /**
     * Text shown beside the time, e.g. `'Local'`, `'UTC'`, `'Pacific'`.
     * Supplied already translated; Timestamp never invents or localizes labels.
     */
    label?: string;
    /**
     * Whether this row shows a copy-to-clipboard button, rendered in a dedicated
     * trailing action column so the buttons line up across rows regardless of
     * each value's width. The action column is only reserved when at least one
     * row is copyable, so a fully read-only card has no trailing gutter.
     *
     * Defaults to `false` — rows are read-only unless opted in. Set `true` for a
     * row whose value is worth pasting elsewhere, such as a machine-readable
     * `system_date_time` value shown beside human-readable zones that only need
     * to be read.
     * @default false
     */
    isCopyable?: boolean;
}
/** A rendered tooltip line. */
export interface TimestampTooltipLine {
    label?: string;
    value: string;
    isCopyable: boolean;
}
/**
 * Renders one tooltip line per entry, in the order given.
 *
 * Pure: the same `date` and `entries` always produce the same lines for a given
 * host zone and locale.
 */
export declare function formatTooltipLines(date: Date, entries: ReadonlyArray<TimestampTooltipEntry>): ReadonlyArray<TimestampTooltipLine>;
//# sourceMappingURL=tooltipEntries.d.ts.map