/**
 * Logging utilities for Variably SDK
 */
export type LogLevel = 'debug' | 'info' | 'warn' | 'error';
export interface Logger {
    debug(message: string, meta?: Record<string, any>): void;
    info(message: string, meta?: Record<string, any>): void;
    warn(message: string, meta?: Record<string, any>): void;
    error(message: string, meta?: Record<string, any>): void;
    setLevel(level: LogLevel): void;
}
/**
 * Console-based logger implementation
 */
export declare class ConsoleLogger implements Logger {
    private level;
    private levelPriority;
    constructor(level?: LogLevel);
    debug(message: string, meta?: Record<string, any>): void;
    info(message: string, meta?: Record<string, any>): void;
    warn(message: string, meta?: Record<string, any>): void;
    error(message: string, meta?: Record<string, any>): void;
    setLevel(level: LogLevel): void;
    private log;
}
/**
 * Silent logger that discards all log messages
 */
export declare class SilentLogger implements Logger {
    debug(): void;
    info(): void;
    warn(): void;
    error(): void;
    setLevel(): void;
}
/**
 * Custom logger that allows injecting your own logging function
 */
export declare class CustomLogger implements Logger {
    private level;
    private levelPriority;
    private logFunction;
    constructor(logFunction: (level: LogLevel, message: string, meta?: Record<string, any>) => void, level?: LogLevel);
    debug(message: string, meta?: Record<string, any>): void;
    info(message: string, meta?: Record<string, any>): void;
    warn(message: string, meta?: Record<string, any>): void;
    error(message: string, meta?: Record<string, any>): void;
    setLevel(level: LogLevel): void;
    private log;
}
/**
 * Structured logger that formats logs as JSON
 */
export declare class StructuredLogger implements Logger {
    private level;
    private levelPriority;
    private service;
    constructor(level?: LogLevel, service?: string);
    debug(message: string, meta?: Record<string, any>): void;
    info(message: string, meta?: Record<string, any>): void;
    warn(message: string, meta?: Record<string, any>): void;
    error(message: string, meta?: Record<string, any>): void;
    setLevel(level: LogLevel): void;
    private log;
}
/**
 * Factory function to create appropriate logger based on environment
 */
export declare function createLogger(options?: {
    level?: LogLevel;
    type?: 'console' | 'silent' | 'structured';
    custom?: (level: LogLevel, message: string, meta?: Record<string, any>) => void;
}): Logger;
/**
 * Get appropriate log level from environment variable
 */
export declare function getLogLevelFromEnv(defaultLevel?: LogLevel): LogLevel;
//# sourceMappingURL=logger.d.ts.map