import { OnModuleDestroy, OnModuleInit } from '@nestjs/common';
import { PrismaService } from "../../../database/prisma/prisma.service";
type LogLevelType = 'ERROR' | 'WARN' | 'INFO' | 'DEBUG';
export interface LogEntry {
    traceId: string;
    spanId?: string;
    parentSpanId?: string;
    requestId: string;
    level: LogLevelType;
    message?: string;
    method?: string;
    url?: string;
    statusCode?: number;
    durationMs?: number;
    userId?: string;
    userName?: string;
    clientIp?: string;
    userAgent?: string;
    service?: string;
    region?: string;
    instance?: string;
    errorType?: string;
    errorMessage?: string;
    errorCode?: string;
    errorStack?: string;
    requestBody?: any;
    responseBody?: any;
    metadata?: any;
}
export declare class LogWriterService implements OnModuleInit, OnModuleDestroy {
    private readonly prisma;
    private buffer;
    private flushInterval;
    private isShuttingDown;
    private readonly BATCH_SIZE;
    private readonly FLUSH_INTERVAL_MS;
    private readonly MAX_BUFFER_SIZE;
    constructor(prisma: PrismaService);
    onModuleInit(): void;
    onModuleDestroy(): Promise<void>;
    write(entry: LogEntry): void;
    private dropOverflow;
    flush(): Promise<void>;
    private writeToFile;
    private flushOneByOne;
    private toSystemLogCreateInput;
    private toSafeJsonValue;
    getBufferStatus(): {
        size: number;
        maxSize: number;
    };
}
export {};
