export declare type RUSAGE_SELF = number;
export declare type RUSAGE_CHILDREN = number;
export declare const RUSAGE_SELF: RUSAGE_SELF;
export declare const RUSAGE_CHILDREN: RUSAGE_CHILDREN;
/**
 * Resource Usage data struct
 * https://www.gnu.org/software/libc/manual/html_node/Resource-Usage.html#index-struct-rusage
 */
export interface RUsage {
    /**
     * time spent in executing user instructions (seconds)
     * sum of tv_sec and tv_usec (unit: seconds)
     */
    utime: number;
    /**
     * time spent in operating system code on behalf of processes (seconds)
     * sum of tv_sec and tv_usec (unit: seconds)
     */
    stime: number;
    /**
     * the maximum of physical memory that processes used simultaneously (kilobytes)
     * always normalized unit in kilobytes on macOS
     */
    maxrss: number;
    idrss: number;
    ixrss: number;
    isrss: number;
    /** the number of page faults which were serviced without requiring any I/O */
    minflt: number;
    /** the number of page faults which were serviced by doing I/O (count) */
    majflt: number;
    nswap: number;
    inblock: number;
    oublock: number;
    /** number of IPC messages sent */
    msgsnd: number;
    /** number of IPC messages received */
    msgrcv: number;
    /** number of signals received */
    nsignals: number;
    /**
     * the number of times processes voluntarily invoked a context switch
     * (usually to wait for some service)
     */
    nvcsw: number;
    /**
     * the number of times an involuntary context switch took place (count)
     * because a time slice expired, or another process of higher priority was scheduled
     */
    nivcsw: number;
}
export declare const getrusage: (who?: number | undefined) => RUsage;
