Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
61 changes: 61 additions & 0 deletions index.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
/**
* Object used to represent the time of a clock.
* */
export interface PosixClockTime {
/**
* Seconds since the epoch (1970-01-01 00:00:00 UTC).
*/
sec: number;

/**
* Nanoseconds since the last second.
*/
nsec: number;
}

/**
* Retrieves the time of the specified clock.
* @param clockId - Clock identifier, specified by constant.
* @returns An object containing seconds and nanoseconds: `{ sec: number, nsec: number }`.
*/
export function gettime(clockId: number): PosixClockTime;

/**
* Finds the resolution (precision) of the specified clock.
* @param clockId - Clock identifier, specified by constant.
* @returns An object containing seconds and nanoseconds: `{ sec: number, nsec: number }`.
*/
export function getres(clockId: number): PosixClockTime;

/**
* High-resolution sleep with a specifiable clock.
* @warning Not supported on FreeBSD.
* @param clockId - The clock identifier.
* @param flags - Flags (e.g., `TIMER_ABSTIME`).
* @param sleepTime - The sleep time as `{ sec: number, nsec: number }`.
*/
export function nanosleep(clockId: number, flags: number, sleepTime: PosixClockTime): void;

// Clock constants
export const REALTIME: number;
export const MONOTONIC: number;
export const REALTIME_COARSE: number;
export const MONOTONIC_COARSE: number;
export const MONOTONIC_RAW: number;
export const BOOTTIME: number;
export const PROCESS_CPUTIME_ID: number;
export const THREAD_CPUTIME_ID: number;

// FreeBSD-specific constants
export const REALTIME_FAST: number;
export const REALTIME_PRECISE: number;
export const MONOTONIC_FAST: number;
export const MONOTONIC_PRECISE: number;
export const UPTIME: number;
export const UPTIME_FAST: number;
export const UPTIME_PRECISE: number;
export const SECOND: number;
export const PROF: number;

// Timer flag
export const TIMER_ABSTIME: number;