export declare type State = "R" | "S" | "D" | "Z" | "T" | "W";
export interface Mem {
    rss: number;
}
export interface Stat {
    ppid: number;
    state: State;
    utime: number;
    stime: number;
    cutime: number;
    cstime: number;
    starttime: number;
    nice: number;
    num_threads: number;
    mem: Mem;
}
export interface Cpu {
    pct: number;
    secs: number;
}
interface ProcProject {
    type: "project";
}
interface ProcTerminal {
    type: "terminal";
    path: string;
}
interface ProcJupyter {
    type: "jupyter";
    path: string;
}
interface ProcX11 {
    type: "x11";
    path: string;
}
interface ProcSSHD {
    type: "sshd";
}
export declare type CoCalcInfo = ProcTerminal | ProcJupyter | ProcProject | ProcSSHD | ProcX11;
export interface Process {
    pid: number;
    ppid: number;
    exe: string;
    cmdline: string[];
    stat: Stat;
    cpu: Cpu;
    uptime: number;
    cocalc?: CoCalcInfo;
}
export interface CGroup {
    mem_stat: {
        [key: string]: number;
    };
    cpu_usage: number;
    cpu_usage_rate: number;
    oom_kills: number;
    cpu_cores_limit: number;
}
export interface DiskUsageInfo {
    available: number;
    free: number;
    total: number;
    usage: number;
}
export declare type DiskUsage = Record<"tmp" | "project", DiskUsageInfo>;
export declare type Processes = {
    [pid: string]: Process;
};
export interface ProjectInfo {
    timestamp: number;
    processes?: Processes;
    cgroup?: CGroup;
    disk_usage: DiskUsage;
    uptime: number;
    boottime: Date;
}
export declare enum Signal {
    Kill = 9,
    Interrupt = 2,
    Terminate = 15,
    Pause = 19,
    Resume = 18
}
interface SignalCmd {
    cmd: "signal";
    signal?: Signal;
    pids: number[];
}
export declare type ProjectInfoCmds = SignalCmd;
export {};
