import { ErrorCodes } from '../../../shared/errors/error-codes';
import { ErrorSources } from '../../../shared/errors/error-source';
import { StatusCode } from '../../../shared/errors/status-code';
import { LogLevel } from '../../../shared/logger/log-level';
import { Logger } from '../../../shared/logger/logger';
export declare const LOG_FILENAME = "cli";
export type CLILoggerConfig = BasicLoggerConfig | FileLoggerConfig;
export interface BasicLoggerConfig {
    verbose?: boolean;
}
interface FileLoggerConfig extends BasicLoggerConfig {
    fileLogDirPath: string;
    fileLogLevel?: CLILoggerChoice;
}
export interface FatalError {
    statusCode: StatusCode;
    errorSource: ErrorSources;
    errorCode: ErrorCodes;
    message: string;
    error?: Error;
}
export declare const cliLogLevel: {
    readonly debug: LogLevel.DEBUG;
    readonly info: LogLevel.INFO;
};
type CLILoggerChoice = keyof typeof cliLogLevel;
export declare function getLogPath(tacoRootPath: string): string;
export declare const logger: Logger;
export declare function initLogger(config: CLILoggerConfig): void;
export declare function logFatalError(fatalError: FatalError): void;
export {};
