import { Duration as Base, type DurationSource } from "@tai-kun/surrealdb/encodable-datatypes";
export type * from "../encodable/duration";
export interface DurationLike {
    seconds: bigint;
    nanoseconds: number;
}
/**
 * [API Reference](https://tai-kun.github.io/surrealdb.js/v2/api/data/duration)
 */
export default class Duration extends Base {
    static get MAX(): Duration;
    static get ZERO(): Duration;
    static years(years: number): Duration;
    static weeks(weeks: number): Duration;
    static days(days: number): Duration;
    static hours(hours: number): Duration;
    static minutes(minutes: number): Duration;
    static seconds(seconds: number): Duration;
    static milliseconds(milliseconds: number): Duration;
    static microseconds(microseconds: number): Duration;
    static nanoseconds(nanoseconds: number): Duration;
    constructor(value: DurationSource | number | bigint | string | DurationLike);
    get seconds(): bigint;
    set seconds(s: bigint);
    get nanoseconds(): number;
    set nanoseconds(ns: number);
    getCompact(): [seconds: bigint, nanoseconds: number];
    setCompact(compact: readonly [seconds: bigint, nanoseconds: number]): void;
    getYears(): number;
    addYears(years: number): void;
    subYears(years: number): void;
    getWeeks(): number;
    addWeeks(weeks: number): void;
    subWeeks(weeks: number): void;
    getDays(): number;
    addDays(days: number): void;
    subDays(days: number): void;
    getHours(): number;
    addHours(hours: number): void;
    subHours(hours: number): void;
    getMinutes(): number;
    addMinutes(minutes: number): void;
    subMinutes(minutes: number): void;
    getSeconds(): number;
    addSeconds(seconds: number): void;
    subSeconds(seconds: number): void;
    getMilliseconds(): number;
    addMilliseconds(milliseconds: number): void;
    subMilliseconds(milliseconds: number): void;
    getMicroseconds(): number;
    addMicroseconds(microseconds: number): void;
    subMicroseconds(microseconds: number): void;
    getNanoseconds(): number;
    addNanoseconds(nanoseconds: number): void;
    subNanoseconds(nanoseconds: number): void;
    asYears(): number;
    asWeeks(): number;
    asDays(): number;
    asHours(): number;
    asMinutes(): number;
    asSeconds(): number;
    asMilliseconds(): number;
    asMicroseconds(): number;
    asNanoseconds(): number;
    toISOString(): string;
    clone(): this;
}
//# sourceMappingURL=duration.d.ts.map