export interface OmnisLoggerConfig {
    endpoint: string;
    apiKey: string;
    environment?: 'development' | 'staging' | 'production';
    platform?: string;
    version?: string;
    userId?: string;
    sessionId?: string;
    enableConsole?: boolean;
    enableGlobalErrorHandlers?: boolean;
    enableNetworkErrorCapture?: boolean;
    maxRetries?: number;
    timeout?: number;
    deviceInfo?: DeviceInfo;
    deviceInfoModule?: any;
}
export interface LogContext {
    [key: string]: any;
}
export interface DeviceInfo {
    platform?: string;
    os?: string;
    osVersion?: string;
    userAgent?: string;
    language?: string;
    timezone?: string;
    screenWidth?: number;
    screenHeight?: number;
    pixelRatio?: number;
    deviceId?: string;
    model?: string;
    brand?: string;
    systemName?: string;
    systemVersion?: string;
    bundleId?: string;
    applicationName?: string;
    buildNumber?: string;
    version?: string;
    readableVersion?: string;
    isTablet?: boolean;
    deviceType?: string;
    deviceName?: string;
    manufacturer?: string;
    isEmulator?: boolean;
    uniqueId?: string;
    androidId?: string;
    apiLevel?: number;
    hasNotch?: boolean;
    hasDynamicIsland?: boolean;
    networkType?: string;
    isConnected?: boolean;
    [key: string]: any;
}
export interface LogData {
    level: 'error' | 'warn' | 'info' | 'debug';
    message: string;
    stack?: string;
    context?: LogContext;
    userAgent?: string;
    url?: string;
    userId?: string;
    sessionId?: string;
    platform?: string;
    version?: string;
    environment?: 'development' | 'staging' | 'production';
    deviceInfo?: DeviceInfo;
}
export declare class OmnisLogger {
    private config;
    private client;
    private queue;
    private isProcessing;
    private globalContext;
    private deviceInfo;
    constructor(config: OmnisLoggerConfig);
    private initializeDeviceInfo;
    private collectDeviceInfoFromModule;
    private collectAsyncDeviceInfo;
    private isBrowser;
    private isReactNative;
    private collectBrowserInfo;
    private setupGlobalErrorHandlers;
    private setupBrowserErrorHandlers;
    private setupReactNativeErrorHandlers;
    private setupNetworkErrorCapture;
    private setupBrowserNetworkCapture;
    private setupReactNativeNetworkCapture;
    error(message: string, context?: LogContext): void;
    warn(message: string, context?: LogContext): void;
    info(message: string, context?: LogContext): void;
    debug(message: string, context?: LogContext): void;
    exception(error: Error, context?: LogContext): void;
    private log;
    private handleGlobalError;
    private handleGlobalRejection;
    private getUserAgent;
    private extractUrlFromFetchArgs;
    private getCurrentUrl;
    private processQueue;
    private sendLog;
    flush(): Promise<void>;
    setConfig(config: Partial<OmnisLoggerConfig>): void;
    setUser(userId: string): void;
    setSession(sessionId: string): void;
    setGlobalContext(context: LogContext): void;
    getGlobalContext(): LogContext;
    clearGlobalContext(): void;
    setDeviceInfo(deviceInfo: DeviceInfo): void;
    getDeviceInfo(): DeviceInfo;
    updateDeviceInfo(updates: Partial<DeviceInfo>): void;
}
export declare const getDeviceId: () => string;
export declare const initOmnisLogger: (config: OmnisLoggerConfig) => OmnisLogger;
export declare const getOmnisLogger: () => OmnisLogger | null;
export default OmnisLogger;
//# sourceMappingURL=index.d.ts.map