import { LogBase, Logger } from '@pnpm/logger';
import { PackageJson } from '@pnpm/types';
export declare const packageJsonLogger: Logger<PackageJsonMessage>;
export declare const stageLogger: Logger<"resolution_done">;
export declare const summaryLogger: Logger<void>;
export declare const installCheckLogger: Logger<InstallCheckMessage>;
export declare const deprecationLogger: Logger<DeprecationMessage>;
export declare const lifecycleLogger: Logger<LifecycleMessage>;
export declare const rootLogger: Logger<RootMessage>;
export declare const progressLogger: Logger<ProgressMessage>;
export declare type PackageJsonMessage = {
    initial: PackageJson;
} | {
    updated: object;
};
export declare type PackageJsonLog = {
    name: 'pnpm:package-json';
} & LogBase & PackageJsonMessage;
export interface InstallCheckMessage {
    code: string;
    pkgId: string;
}
export declare type InstallCheckLog = {
    name: 'pnpm:install-check';
} & LogBase & InstallCheckMessage;
export interface DeprecationMessage {
    pkgName: string;
    pkgVersion: string;
    pkgId: string;
    deprecated: string;
    depth: number;
}
export declare type DeprecationLog = {
    name: 'pnpm:deprecation';
} & LogBase & DeprecationMessage;
export declare type LifecycleMessage = {
    pkgId: string;
    script: string;
} & ({
    line: string;
} | {
    exitCode: number;
});
export declare type LifecycleLog = {
    name: 'pnpm:lifecycle';
} & LogBase & LifecycleMessage;
export declare type DependencyType = 'prod' | 'dev' | 'optional';
export declare type RootMessage = {
    added: {
        name: string;
        realName: string;
        version: string;
        dependencyType: DependencyType;
    };
} | {
    removed: {
        name: string;
        version?: string;
        dependencyType: DependencyType;
    };
} | {
    linked: {
        name: string;
        from: string;
        to: string;
        dependencyType?: DependencyType;
    };
};
export declare type RootLog = {
    name: 'pnpm:root';
} & LogBase & RootMessage;
export interface LoggedPkg {
    rawSpec: string;
    name: string;
    dependentId?: string;
}
export declare type ProgressMessage = {
    pkgId: string;
    status: 'installed' | 'dependencies_installed';
} | {
    pkg: LoggedPkg;
    status: 'installing';
} | {
    status: 'downloaded_manifest';
    pkgId: string;
    pkgVersion: string;
};
export declare type ProgressLog = {
    name: 'pnpm:progress';
} & LogBase & ProgressMessage;
export declare type StageLog = {
    name: 'pnpm:stage';
} & LogBase & {
    message: 'resolution_done';
};
export declare type RegistryLog = {
    name: 'pnpm:registry';
} & LogBase & {
    message: string;
};
export declare type Log = StageLog | ProgressLog | RootLog | LifecycleLog | DeprecationLog | InstallCheckLog | PackageJsonLog | RegistryLog | {
    name: 'pnpm:summary';
} & LogBase;
