import { EventEmitter } from "node:events";
import type { Error, ApiStats } from "../types.ts";
export declare const ScannerLoggerEvents: {
    readonly error: "error";
    readonly done: "depWalkerFinished";
    readonly analysis: {
        readonly tree: "walkTree";
        readonly tarball: "tarball";
        readonly registry: "registry";
    };
    readonly manifest: {
        readonly read: "readManifest";
        readonly fetch: "fetchManifest";
    };
};
export interface LoggerEventData {
    /** UNIX Timestamp */
    startedAt: number;
    /** Count of triggered event */
    count: number;
}
export type LoggerEventError = {
    executionTime: number;
} & Error;
export type LoggerEventsMap = {
    start: [eventName: string];
    tick: [eventName: string];
    end: [eventName: string, data: LoggerEventData & {
        executionTime: number;
    }];
    depWalkerFinished: [];
    error: [error: LoggerEventError, phase?: string];
    stat: [stat: ApiStats];
};
export declare class Logger extends EventEmitter<LoggerEventsMap> {
    events: Map<string, LoggerEventData>;
    start(eventName: string): this;
    tick(eventName: string): this;
    count(eventName: string): number;
    end(eventName: string): this;
}
//# sourceMappingURL=logger.class.d.ts.map