/*! Copyright 2024 the gnablib contributors MPL-1.1 */ import { BitWriter } from '../primitive/BitWriter.js'; import { BitReader } from '../primitive/BitReader.js'; import { ISerializer } from '../primitive/interfaces/ISerializer.js'; import { WindowStr } from '../primitive/WindowStr.js'; import { IDurationExactParts, IDurationParts } from './interfaces/IDurationParts.js'; declare const consoleDebugSymbol: unique symbol; declare abstract class ADurationCore { protected readonly _storage: Uint8Array; protected readonly _hPos: number; protected constructor(_storage: Uint8Array, _hPos: number); abstract get day(): number; protected abstract _otherHours(): number; get hour(): number; get minute(): number; get second(): number; get microsecond(): number; toString(): string; toIso8601(): string; toJSON(): string; toTimeLike(): string; serialize(target: BitWriter): void; protected _validate(): void; protected _dh_misu(): [number, number]; protected static _loadHISU(h: number, i: number, s: number, u: number, storage: Uint8Array, hPos: number): void; protected static _convertHISUPartsToUs(parts: IDurationExactParts): number; protected static _parseDHIS(input: WindowStr): IDurationExactParts; protected static _deserHISU(source: BitReader, storage: Uint8Array, hPos: number): void; } export declare class DurationExact extends ADurationCore implements ISerializer { static readonly serialBits: number; static readonly storageBytes: number; static get zero(): DurationExact; static get max(): DurationExact; get day(): number; protected _otherHours(): number; toString(): string; toIso8601(): string; toDhMiso(): [number, number]; serialize(target: BitWriter): void; get serialSizeBits(): number; validate(): DurationExact; gt(de: DurationExact): boolean; add(de: DurationExact): DurationExact; sub(de: DurationExact): DurationExact; get [Symbol.toStringTag](): string; [consoleDebugSymbol](): string; private static _loadDHISU; static new(parts: IDurationExactParts): DurationExact; static fromUs(us: number): DurationExact; static fromTimeLike(timeLike: string): DurationExact; static parse(input: WindowStr): DurationExact; static deserialize(source: BitReader): DurationExact; } export declare class Duration extends ADurationCore implements ISerializer { static readonly serialBits: number; static readonly storageBytes: number; static get zero(): Duration; static get max(): Duration; get year(): number; get month(): number; get day(): number; protected _otherHours(): number; toString(): string; toIso8601(): string; serialize(target: BitWriter): void; get serialSizeBits(): number; validate(): Duration; toYMDhMiso(): [number, number, number, number]; private _ymf_dh_misu; gt(d: Duration): boolean; add(d: DurationExact): Duration; add(d: Duration): Duration; sub(d: DurationExact): Duration; sub(d: Duration): Duration; get [Symbol.toStringTag](): string; [consoleDebugSymbol](): string; private static _loadYMfD; static new(parts: IDurationParts): Duration; static parse(input: WindowStr): Duration; static deserialize(source: BitReader): Duration; } export {};