import pino from 'pino';
export interface LoggerConfig {
    level?: string;
    service?: string;
    component?: string;
    enableFileLogging?: boolean;
    logsDir?: string;
}
export interface ComponentLoggerMethods {
    debug: (message: string, meta?: any) => void;
    info: (message: string, meta?: any) => void;
    warn: (message: string, meta?: any) => void;
    error: (message: string, error?: any, meta?: any) => void;
}
/**
 * High-performance logging system based on Pino
 */
export declare class Logger {
    private pinoInstance;
    private config;
    constructor(config?: LoggerConfig);
    /**
     * Ensure logs directory exists
     */
    private ensureLogsDirectory;
    /**
     * Create Pino instance
     */
    private createPinoInstance;
    /**
     * Setup exception handlers
     */
    private setupExceptionHandlers;
    /**
     * Create component logger with context
     */
    createComponentLogger(component: string): ComponentLoggerMethods;
    /**
     * Get raw Pino instance
     */
    getPinoInstance(): pino.Logger;
    /**
     * Log performance metrics
     */
    logPerformance(operation: string, startTime: number, meta?: any): void;
    /**
     * Log Express HTTP requests
     */
    logExpress(method: string, path: string, statusCode: number, startTime: number, meta?: any): void;
    /**
     * Log database operations
     */
    logDatabaseOperation(operation: string, table?: string, meta?: any): void;
    /**
     * Log WebSocket events
     */
    logWebSocketEvent(event: string, clientCount?: number, meta?: any): void;
    /**
     * Log GraphQL queries
     */
    logGraphQLQuery(operation: string, query?: string, variables?: any): void;
}
export declare const dbLogger: ComponentLoggerMethods;
export declare const serverLogger: ComponentLoggerMethods;
export declare const httpLogger: ComponentLoggerMethods;
export declare const wsLogger: ComponentLoggerMethods;
export declare const gqlLogger: ComponentLoggerMethods;
export declare const subscriptionLogger: ComponentLoggerMethods;
export declare const systemLogger: ComponentLoggerMethods;
export declare const authLogger: ComponentLoggerMethods;
export declare const perfLogger: ComponentLoggerMethods;
export declare const createComponentLogger: (component: string) => ComponentLoggerMethods;
export declare const logPerformance: (operation: string, startTime: number, meta?: any) => void;
export declare const logExpress: (method: string, path: string, statusCode: number, startTime: number, meta?: any) => void;
export declare const logDatabaseOperation: (operation: string, table?: string, meta?: any) => void;
export declare const logWebSocketEvent: (event: string, clientCount?: number, meta?: any) => void;
export declare const logGraphQLQuery: (operation: string, query?: string, variables?: any) => void;
declare const _default: pino.Logger<never>;
export default _default;
//# sourceMappingURL=index.d.ts.map