export type LoggerOptions = {
    verbose: boolean;
    json: boolean;
    outStream: NodeJS.WriteStream;
    errStream: NodeJS.WriteStream;
};
type Symbol = '✓' | '⚠' | '×' | '●' | ' ' | '○' | '→';
type Color = 'blue' | 'green' | 'yellow' | 'red' | 'pink' | 'white' | 'orange' | 'purple';
type LogPrefix = {
    symbol: Symbol;
    fg?: Color;
    bg?: Color;
    indent?: number;
} | string;
type LogProps = {
    prefix: LogPrefix;
    stderr?: boolean;
};
type PrintProps = {
    metadata: any;
    prefix: string;
    stderr?: boolean;
};
export type StreamType = 'out' | 'err';
export declare abstract class BaseLogger {
    protected opts: LoggerOptions;
    constructor(opts?: Partial<LoggerOptions>);
    log(message: string, props?: Partial<LogProps>): void;
    json(data: any, opts?: Partial<{
        depth: number;
    }>): void;
    debug(message: string): void;
    started(message: string): void;
    success(message: string): void;
    warn(message: string): void;
    error(message: string): void;
    box(message: string): void;
    protected abstract print(message: string, props?: Partial<PrintProps>): void;
    private _resolvePrefix;
    private _renderSymbol;
    protected render(message: string, streamType?: StreamType): void;
}
export {};
