import streamParser, { createStreamParser } from './streamParser';
import writeToConsole from './writeToConsole';
export { streamParser, createStreamParser, writeToConsole };
declare const baseLogger: any;
export default baseLogger;
export declare const deprecationLogger: Logger<DeprecationMessage>;
export declare const rootLogger: Logger<RootMessage>;
export declare const installCheckLogger: Logger<InstallCheckMessage>;
export declare const progressLogger: Logger<ProgressMessage>;
export declare const lifecycleLogger: Logger<LifecycleMessage>;
export declare const stageLogger: Logger<"resolution_done">;
export declare const summaryLogger: Logger<void>;
export declare const manifestLogger: Logger<ManifestMessage>;
export declare type LifecycleMessage = {
    pkgId: string;
    script: string;
} & ({
    line: string;
} | {
    exitCode: number;
});
export declare type ProgressMessage = {
    pkgId: string;
    status: 'fetched' | 'installed' | 'dependencies_installed' | 'found_in_store' | 'resolving_content';
} | {
    pkgId: string;
    pkg: LoggedPkg;
    status: 'resolved';
} | {
    pkg: LoggedPkg;
    status: 'resolving' | 'error' | 'installing';
} | {
    pkgId: string;
    status: 'fetching_started';
    size: number | null;
    attempt: number;
} | {
    pkgId: string;
    status: 'fetching_progress';
    downloaded: number;
} | {
    status: 'downloaded_manifest';
    pkgId: string;
    pkgVersion: string;
};
export interface InstallCheckMessage {
    code: string;
    pkgId: string;
}
export interface LogBase {
    level: 'debug' | 'info' | 'warn' | 'error';
}
export interface DeprecationMessage {
    pkgName: string;
    pkgVersion: string;
    pkgId: string;
    deprecated: string;
    depth: number;
}
export declare type DependencyType = 'prod' | 'dev' | 'optional';
export declare type RootMessage = {
    added: {
        name: string;
        version: string;
        dependencyType: DependencyType;
    };
} | {
    removed: {
        name: string;
        version?: string;
        dependencyType: DependencyType;
    };
};
export declare type ManifestMessage = {
    initial: object;
} | {
    updated: object;
};
export interface StandardMessage {
    message: string;
}
export declare type ProgressLog = {
    name: 'pnpm:progress';
} & LogBase & ProgressMessage;
export declare type LifecycleLog = {
    name: 'pnpm:lifecycle';
} & LogBase & LifecycleMessage;
export declare type InstallCheckLog = {
    name: 'pnpm:install-check';
} & LogBase & InstallCheckMessage;
export declare type DeprecationLog = {
    name: 'pnpm:deprecation';
} & LogBase & DeprecationMessage;
export declare type StageLog = {
    name: 'pnpm:stage';
} & LogBase & {
    message: 'resolution_done';
};
export declare type RegistryLog = {
    name: 'pnpm:registry';
} & LogBase & StandardMessage;
export declare type RootLog = {
    name: 'pnpm:root';
} & LogBase & RootMessage;
export declare type SummaryLog = {
    name: 'pnpm:summary';
} & LogBase;
export declare type ManifestLog = {
    name: 'pnpm:manifest';
} & LogBase & ManifestMessage;
export declare type Log = ProgressLog | LifecycleLog | InstallCheckLog | DeprecationLog | StageLog | RegistryLog | RootLog | SummaryLog | ManifestLog | ({
    name: 'pnpm';
} & LogBase);
export interface LoggedPkg {
    rawSpec: string;
    name: string;
    dependentId?: string;
}
export interface Logger<T> {
    debug: (log: T) => void;
    info: (log: T) => void;
    warn: (log: T) => void;
    error: (log: T) => void;
}
