import { CBOR_TAG_DATETIME, type DatetimeSource, type Encodable } from "@tai-kun/surrealdb/encodable-datatypes";
export type * from "../encodable/datetime";
export interface DatetimeLike {
    readonly seconds: number;
    readonly nanoseconds: number;
}
/**
 * [API Reference](https://tai-kun.github.io/surrealdb.js/v2/api/data/datetime)
 */
export default class Datetime extends Date implements Encodable {
    protected _nanoseconds: number;
    protected processNsTime(nsTime: bigint | null | undefined): number;
    constructor(value?: DatetimeSource | number | bigint | Date | DatetimeLike | undefined);
    constructor(year: number, monthIndex: number, date?: number | undefined, hours?: number | undefined, minutes?: number | undefined, seconds?: number | undefined, milliseconds?: number | undefined, microseconds?: number | undefined, nanoseconds?: number | undefined);
    get seconds(): number;
    set seconds(s: number);
    get nanoseconds(): number;
    set nanoseconds(ns: number);
    getCompact(): [seconds: number, nanoseconds: number];
    setCompact(compact: readonly [seconds: number, nanoseconds: number]): number;
    getMicroseconds(): number;
    setMicroseconds(us: number): number;
    getUTCMicroseconds(): number;
    setUTCMicroseconds(us: number): number;
    getNanoseconds(): number;
    setNanoseconds(ns: number): number;
    getUTCNanoseconds(): number;
    setUTCNanoseconds(ns: number): number;
    setTime(time: number | bigint): number;
    setMilliseconds(ms: number): number;
    setUTCMilliseconds(ms: number): number;
    toISOString(): string;
    toDate(): Date;
    toCBOR(): [
        tag: typeof CBOR_TAG_DATETIME,
        value: [seconds: number, nanoseconds: number]
    ];
    toJSON(): string;
    toSurql(): string;
    toPlainObject(): {
        seconds: number;
        nanoseconds: number;
    };
    clone(): this;
}
//# sourceMappingURL=datetime.d.ts.map