import { LogLevel, EventCategory, LogMetadata, LoggerConfig, UsageMetrics } from './types';
export declare class Logger {
    private static instance;
    private environment;
    private sourceToken?;
    private betterStackEndpoint;
    private config;
    private metrics;
    constructor(config?: LoggerConfig);
    static getInstance(config?: LoggerConfig): Logger;
    log(level: LogLevel, eventType: string, metadata?: LogMetadata): Promise<void>;
    private sendToBetterStack;
    private updateMetrics;
    private checkRateLimit;
    getCategoryFromEvent(eventType: string): EventCategory;
    formatMessage(eventType: string, metadata: LogMetadata): string;
    info(eventType: string, metadata?: LogMetadata): void;
    warn(eventType: string, metadata?: LogMetadata): void;
    error(eventType: string, metadata?: LogMetadata): void;
    critical(eventType: string, metadata?: LogMetadata): void;
    getMetrics(): UsageMetrics;
    configure(config: Partial<LoggerConfig>): void;
    resetMetrics(): void;
}
