import type{ComplexAttributeConverter}from'lit';export type LyraFormatNumberType='currency'|'decimal'|'percent';export type LyraFormatNumberNotation='standard'|'compact'|'scientific'|'engineering';export type LyraFormatCurrencyDisplay='symbol'|'narrowSymbol'|'code'|'name';export type LyraFormatBytesUnit='byte'|'bit';export type LyraFormatDisplay='long'|'short'|'narrow';export type LyraFormatDateHour='auto'|'12'|'24';export type LyraFormatDateStyle='full'|'long'|'medium'|'short';export type LyraFormatDateText='narrow'|'short'|'long';export type LyraFormatDateNumeric='numeric'|'2-digit';export type LyraFormatDateMonth=LyraFormatDateNumeric|LyraFormatDateText;export type LyraFormatDateTimeZoneName='short'|'long';export type LyraRelativeTimeNumeric='always'|'auto'; /** Attribute converter shared by date-formatting elements. Numeric markup denotes epoch * milliseconds, while every other string remains an ISO/date string for the platform parser. */ export declare const dateSourceConverter:ComplexAttributeConverter;export interface NumberFormatInputs{type:LyraFormatNumberType;notation:LyraFormatNumberNotation;currency:string;currencyDisplay:LyraFormatCurrencyDisplay;withoutGrouping:boolean;noGrouping:boolean;minimumIntegerDigits?:number;minimumFractionDigits?:number;maximumFractionDigits?:number;minimumSignificantDigits?:number;maximumSignificantDigits?:number;} /** Builds an `Intl.NumberFormat` options bag after numeric inputs are normalized at the component boundary. */ export declare function numberFormatOptions(input:NumberFormatInputs):Intl.NumberFormatOptions;export interface DateFormatInputs{weekday?:LyraFormatDateText;era?:LyraFormatDateText;year?:LyraFormatDateNumeric;month?:LyraFormatDateMonth;day?:LyraFormatDateNumeric;hour?:LyraFormatDateNumeric;minute?:LyraFormatDateNumeric;second?:LyraFormatDateNumeric;timeZoneName?:LyraFormatDateTimeZoneName;dateStyle?:LyraFormatDateStyle;timeStyle?:LyraFormatDateStyle;timeZone?:string;hourFormat:LyraFormatDateHour;} /** Builds one valid `Intl.DateTimeFormat` option family; preset and granular fields never mix. */ export declare function dateTimeFormatOptions(input:DateFormatInputs):Intl.DateTimeFormatOptions;export interface ByteFormatResult{amount:number;options:Intl.NumberFormatOptions;} /** Scales a byte/bit quantity using a finite decimal step and builds its validated unit options. */ export declare function byteFormat(value:number,unit:LyraFormatBytesUnit,display:LyraFormatDisplay,unitStep:number,decimals:number):ByteFormatResult; /** Normalizes a byte/bit unit-ladder step: non-finite or `<= 1` input falls back to the historical * 1000-based (decimal) ladder. Shared by {@link byteFormat} and `utilities/format.ts`'s * `formatBytes()`, which needs the same normalized step to build an exact `bigint` divisor. */ export declare function safeByteUnitStep(unitStep:number):number; /** * Selects the byte/bit unit-ladder index for a magnitude and step. Shared by {@link byteFormat} * and `utilities/format.ts`'s `formatBytes()`, so a `bigint`/decimal-string input too large for * `number` still lands on the same unit its `Number(...)`-approximated magnitude would pick — the * approximation only ever affects which unit *name* is chosen at an extreme boundary, never the * exact digits `formatBytes()` goes on to compute with `bigint` division. */ export declare function byteUnitIndex(value:number,unitStep:number,unitCount?:number):number; /** Builds runtime-safe options for `Intl.RelativeTimeFormat`. */ export declare function relativeTimeFormatOptions(format:LyraFormatDisplay,numeric:LyraRelativeTimeNumeric):Intl.RelativeTimeFormatOptions; /** * Resolves only primitive date sources or native `Date` internal slots. This intentionally avoids * `new Date(object)`, which invokes caller-controlled conversion hooks on arbitrary objects. * Shared by ``, ``, and `utilities/format.ts`'s `formatDate()` / * `formatRelativeTime()`. */ export declare function resolveDateSource(value:unknown):Date|undefined;export type LyraRelativeTimeUnit='second'|'minute'|'hour'|'day'|'week'|'month'|'quarter'|'year'; /** The relative-time unit ladder, largest-to-smallest -- shared by `` and * `utilities/format.ts`'s `formatRelativeTime()`. */ export declare const RELATIVE_TIME_UNITS:LyraRelativeTimeUnit[]; /** The number of seconds in one of `unit`, used both to auto-select a unit and to schedule the * next boundary a live `` needs to re-render at. */ export declare function relativeTimeDivisor(unit:LyraRelativeTimeUnit):number;export interface RelativeTimeState{readonly seconds:number;readonly requestedUnit:LyraRelativeTimeUnit|'auto';readonly selected:LyraRelativeTimeUnit;readonly value:number;} /** * Selects the display unit and rounded magnitude for a relative-time delta (in seconds): the * largest unit whose divisor the magnitude still clears when `unit` is `'auto'`, or the * explicitly requested unit when it names a real one. Shared by `` and * `utilities/format.ts`'s `formatRelativeTime()`. */ export declare function resolveRelativeTimeState(seconds:number,unit:LyraRelativeTimeUnit|'auto'):RelativeTimeState;