export interface PinoLogEntry {
    level: number;
    time: string;
    msg: string;
    pid?: number;
    hostname?: string;
    name?: string;
    err?: {
        type?: string;
        message?: string;
        stack?: string;
    };
    req?: {
        id?: string;
        method?: string;
        url?: string;
        remoteAddress?: string;
        remotePort?: number;
    };
    res?: {
        statusCode?: number;
    };
    responseTime?: number;
    _isPlainText?: boolean;
    [key: string]: any;
}
export interface LogReadOptions {
    maxLines?: number;
    keyword?: string;
    logLevel?: LogLevel;
    minLevel?: number;
    reverse?: boolean;
    fields?: string[];
}
export interface LogReadResult {
    logs: PinoLogEntry[];
    totalProcessed: number;
    totalMatched: number;
}
export interface LogStreamSummary {
    totalMatched: number;
    totalProcessed: number;
}
export interface LogStats {
    totalLines: number;
    validLogLines: number;
    levelCounts: Record<string, number>;
    timeRange: {
        start: Date | null;
        end: Date | null;
    };
    fileSize: number;
}
export type LogLevel = 'trace' | 'debug' | 'info' | 'warn' | 'error' | 'fatal';
export type LogDataCallback = (logEntry: PinoLogEntry, matchCount: number, processedCount: number) => void;
export type LogEndCallback = (summary: LogStreamSummary) => void;
export declare class PinoLogReader {
    private readonly levelMap;
    readLogs(filePath: string, options?: LogReadOptions): Promise<LogReadResult>;
    readLogsStream(filePath: string, options: LogReadOptions | undefined, onData: LogDataCallback, onEnd?: LogEndCallback): void;
    private readLogsReverse;
    private parseLine;
    private shouldIncludeLog;
    private getSearchText;
    private getNestedValue;
    private getTargetLevel;
    getLogStats(filePath: string): Promise<LogStats>;
    private getLevelName;
}
