import type { TextType, TextSize, TextColor, TextWeight } from '../theme/types';
import type { BaseProps } from '../BaseProps';
import type { TimestampTooltipEntry } from './tooltipEntries';
export type TimestampFormat = 'relative' | 'relative_short' | 'auto' | 'date' | 'date_long' | 'date_weekday' | 'date_time' | 'time' | 'system_date' | 'system_date_time' | 'system_time' | 'unix_seconds';
export interface TimestampProps extends BaseProps<HTMLTimeElement> {
    /** Ref forwarded to the root `<time>` element. */
    ref?: React.Ref<HTMLTimeElement>;
    /** The date/time to display. Accepts Unix timestamps (seconds) or ISO 8601 strings. */
    value: string | number;
    /**
     * Display format.
     * - `'relative'`: "2 hours ago", "yesterday", "now"
     * - `'relative_short'`: "2h ago", "1d ago", "now" — the same tiers as
     *   `'relative'` with abbreviated units (s/m/h/d/mo/y), for compact,
     *   space-constrained surfaces
     * - `'auto'`: Relative for recent times, `date_time` for older
     * - `'date'`: "Mar 21, 2025"
     * - `'date_long'`: "March 21, 2025"
     * - `'date_weekday'`: "Wed, Mar 21, 2025"
     * - `'date_time'`: "Mar 21, 2025, 2:51 PM"
     * - `'time'`: "2:51 PM"
     * - `'system_date'`: "2025-03-21"
     * - `'system_date_time'`: "2025-03-21 14:51:53"
     * - `'system_time'`: "14:51:53"
     * - `'unix_seconds'`: "1742565113" — Unix time in whole seconds since the
     *   epoch. Absolute (zone-independent), so it ignores any tooltip time zone.
     * @default 'auto'
     */
    format?: TimestampFormat;
    /**
     * Threshold in seconds for 'auto' format to switch from relative to date_time.
     * @default 604800 (7 days)
     */
    autoThreshold?: number;
    /**
     * Whether to show a hover card with the full date/time on hover. The card
     * is copyable — its default single row carries the full absolute time — and
     * `tooltipEntries` customizes its rows.
     * @default true
     */
    hasTooltip?: boolean;
    /**
     * Lines to show on hover, so one instant can be read — and optionally
     * copied — in several time zones and/or formats at once. Each entry is one
     * line, rendered in the order given, with an optional label.
     *
     * Rows are read-only unless they set `isCopyable` (default `false`). A
     * copyable row shows a copy button in a dedicated trailing action column so
     * the buttons align across rows; that column is only present when some row
     * is copyable. With no entries the card shows a single default row with the
     * full absolute time in the viewer's own zone, which is copyable.
     *
     * Configuring entries also attaches the surface to absolute formats, which
     * otherwise have no hover card at all. `hasTooltip={false}` still suppresses
     * it, and an empty array is treated as no configuration.
     *
     * @default undefined — a single default row with the full absolute time in
     *   the viewer's own time zone
     * @example
     * ```
     * <Timestamp
     *   value={savedAt}
     *   tooltipEntries={[
     *     {label: 'Your time'},
     *     {timezoneID: 'UTC', label: 'UTC'},
     *     {timezoneID: 'UTC', format: 'system_date_time', label: 'ISO', isCopyable: true},
     *   ]}
     * />
     * ```
     */
    tooltipEntries?: ReadonlyArray<TimestampTooltipEntry>;
    /**
     * Whether to append the timezone abbreviation after the timestamp text.
     * Applies to the date_time and time formats. The system_* formats stay
     * machine-readable and never carry a timezone abbreviation.
     *
     * Affects the visible text only — use `tooltipEntries` to control the
     * tooltip's time zones.
     * @default false
     */
    isTimezoneShown?: boolean;
    /**
     * Whether the relative time should update live.
     * @default false
     */
    isLive?: boolean;
    /**
     * Semantic text type. Determines size, weight, and line-height from theme.
     * @default 'supporting'
     */
    type?: TextType;
    /**
     * Explicit font size override. Overrides the size from `type`.
     */
    size?: TextSize;
    /**
     * Text color.
     * @default 'secondary'
     */
    color?: TextColor;
    /**
     * Font weight override.
     */
    weight?: TextWeight;
    /** Test ID for testing frameworks. */
    'data-testid'?: string;
}
/**
 * Displays a formatted timestamp as human-readable text.
 *
 * Renders a semantic `<time>` element with an ISO 8601 `datetime` attribute,
 * styled via Text. Supports relative ("2 hours ago"), multiple absolute
 * formats, and auto formatting. Optionally shows a hover card with the full
 * absolute time (copyable) and can update live.
 *
 * @example
 * ```
 * <Timestamp value="2026-02-19T17:00:00Z" />
 * <Timestamp value={1740000000} format="date" />
 * <Timestamp value={date} format="auto" isLive />
 * <Timestamp value={event.timestamp} format="system_date_time" />
 * ```
 */
export declare function Timestamp({ value, format, autoThreshold, hasTooltip, tooltipEntries, isTimezoneShown, isLive, type, size, color, weight, xstyle, className, style, ref, 'data-testid': testId, }: TimestampProps): import("react").JSX.Element | null;
export declare namespace Timestamp {
    var displayName: string;
}
//# sourceMappingURL=Timestamp.d.ts.map