import { LumberjackLogLevel } from '../logs/lumberjack-log-level';
import { LumberjackLogPayload } from '../logs/lumberjack-log-payload';
import { LumberjackTimeService } from '../time/lumberjack-time.service';
import { LumberjackService } from './lumberjack.service';
export declare class LumberjackLoggerBuilder<TPayload extends LumberjackLogPayload | void = void> {
    #private;
    constructor(lumberjack: LumberjackService<TPayload>, time: LumberjackTimeService, level: LumberjackLogLevel, message: string);
    build(): (...payloadArg: TPayload extends void ? [never?] : [TPayload]) => void;
    /**
     * Add a scope to the `LumberjackLog`
     */
    withScope(scope: string): LumberjackLoggerBuilder<TPayload>;
    /**
     * Add payload with custom data to the `LumberjackLog`
     */
    withPayload(...payloadArg: TPayload extends void ? [never?] : [TPayload]): LumberjackLoggerBuilder;
}
