import EventEmitter from 'events';
import Sync from '../sync';
import { CpuStats, Loads } from '../../models/CpuStats';
export interface CpuStatsWithLine extends CpuStats {
    line: string;
}
export interface LoadsWithLine {
    [index: string]: CpuStatsWithLine;
}
export type ProcStats = {
    cpus: LoadsWithLine;
};
/**
 * enforce EventEmitter typing
 */
interface IEmissions {
    load: (arg: Loads) => void;
    error: (data: Error) => void;
}
export default class ProcStat extends EventEmitter {
    private sync?;
    interval: number;
    stats: ProcStats;
    private readonly _ignore;
    private readonly _timer;
    constructor(sync?: Sync | undefined);
    on: <K extends keyof IEmissions>(event: K, listener: IEmissions[K]) => this;
    off: <K extends keyof IEmissions>(event: K, listener: IEmissions[K]) => this;
    once: <K extends keyof IEmissions>(event: K, listener: IEmissions[K]) => this;
    emit: <K extends keyof IEmissions>(event: K, ...args: Parameters<IEmissions[K]>) => boolean;
    end(): void;
    update(): Promise<ProcStats>;
    private _parse;
    private _set;
    private _error;
    private _emptyStats;
}
export {};
//# sourceMappingURL=stat.d.ts.map