export interface process_info {
    id: number;
    name: string;
    user_name: string;
    mem: number;
    cpu: number;
}
export interface node_process_watcher_type {
    /**
     *  监听进程，需要提供一个 key
     * @param key
     * @param call
     * @param pids 监听特定进程信息（只是起到过滤作用)
     */
    on: (key: string, call: (list: process_info[]) => any, pids?: number[]) => void;
    /**
     * 关闭某个key的监听 只有当前系统上所有的key都关闭了，程序才会停止实时监控进程信息
     * @param key
     */
    close: (key: string) => void;
    /**
     * 对某个key的监听进程id切换设置
     * 监听特定进程信息（只是起到过滤作用)
     * @param key
     * @param pids
     */
    pids: (key: string, pids: number[]) => void;
    /**
     * get sys all pid  获取系统所有的进程pid信息
     * @param ppid
     */
    get_all_pid(ppid?: number): {
        pid: number;
        cpu: number;
        ppid: number;
    }[];
    /**
     * kill process 可以关闭所有的子进程
     * @param pid
     * @param kill_all_children default false
     */
    kill_process(pid: number, kill_all_children?: boolean): void;
    /**
     * 使用子线程遍历全部的文件与数量
     * @param folder_name
     * @param on
     */
    on_folder_size(folder_name: string, on: (file_num: number, total_size: number) => void): void;
    /**
     * 停止对某个目录的数量统计
     * @param folder_name
     */
    stop_folder_size(folder_name: string): void;
    get_system_proxy_for_windows(): {
        enabled: boolean;
        ip: boolean;
        port: number;
        bypass?: string;
        useForLocal?: boolean;
    };
    set_system_proxy_for_windows(data: {
        enabled: boolean;
        ip: boolean;
        port: number;
        bypass?: string;
        useForLocal?: boolean;
    }): boolean;
    get_system_proxy_for_mac(): {
        name: string;
        proxies: {
            type: number;
            enabled: boolean;
            ip: string;
            port: number;
            bypass?: string;
            useForLocal?: boolean;
        }[];
        bypass?: string;
    }[];
    set_system_proxy_for_mac(data: {
        name: string;
        proxies: {
            type: number;
            enabled: boolean;
            ip: string;
            port: number;
            bypass?: string;
            useForLocal?: boolean;
        }[];
        bypass?: string;
    }[]): boolean;
    /**
     * 判断当前进程是否以管理员/root权限运行
     */
    is_admin(): boolean;
    /**
     * 在 Windows Service 中，
     * 使用 CreateProcessAsUser 在当前登录用户桌面启动程序
     *
     * ⚠️ 仅 Windows 生效
     * ⚠️ Service 必须以 LocalSystem 运行
     *
     * @param exe_path exe 完整路径
     * @param cwd 工作目录
     * @param args
     */
    launch_process_as_user_for_win_service(exe_path: string, args?: string, cwd?: string): number;
    launch_process_as_user_for_win_service_console(exe_path: string, args: string, cwd: string, on_data: (data: string) => void, on_done: () => void, on_pid: (pid: number) => void): void;
    get_all_processes(): {
        pid: number;
        name: string;
    }[];
    get_username_by_uid(uid: number): string;
    get_all_users(): ({
        uid: number;
        username: string;
    } | {
        groups: string[];
        username: string;
        domain: string;
        sid: string;
    })[];
    get_file_owner(file_path: string): {
        username: string;
        domain: string;
        sid: string;
        type: string;
    };
}
export declare const node_process_watcher: node_process_watcher_type;
