import type { LogTransport } from '../interfaces/logTransport'; /** * Platform-agnostic structured logger. All platform-specific behavior — where * records actually go — lives behind the injected {@link LogTransport}: web * injects `DatadogBrowserLogsTransport` (`@datadog/browser-logs`), React Native * injects a Datadog React Native transport. The queueing, env detection, level * routing, console fallback, and user-context tracking here touch no DOM and * are shared across platforms. */ export declare class FunLogger { protected apiKey: string | null; protected isDebugMode: boolean; protected userId: string | null; protected userAddress: string | null; protected userName: string | null; protected userLoginType: string | null; protected typeLabel: string | null; protected sdkVersion: string | null; protected l2Address: string | null; private flowTraceId; private debugTag; private seq; private isConfigured; private logQueue; private disableLogging; private readonly transport; constructor(transport: LogTransport); private getFunLogEnv; /** Merge caller data with the logger's resolved context for the transport. */ private buildLogContext; private processLog; private onDebug; private onInfo; private onWarn; private onError; private extractError; /**======================== * PUBLIC LOGGER FUNCTIONS *=========================*/ log(title: string, data?: object): void; info(title: string, data?: object): void; debug(title: string, data?: object): void; warn(title: string, data?: object): void; /** * @param errorOrData - * Previously was called "error" but since in the {@link Logger} interface, error is defined as object (which is the same thing as "any"), we treat it as of unknown type here for safety. * In a lot of places it's actually being used as a "data" prop, which also usually has an `.error` property representing an actual {@link Error} object. */ error(title: string, errorOrData: unknown, _data?: object): void; private flushLogQueue; configure(apiKey: string | null, isDebug: boolean, sdkVersion: string, disableLogging?: boolean): void; getUserId(): string | null; getUserAddress(): string | null; getUserName(): string | null; getUserLoginType(): string | null; getTypeLabel(): string | null; getL2Address(): string | null; setFlowContext({ traceId }: { traceId: string; }): void; clearFlowContext(): void; setDebugTag(tag: string | null): void; getDebugTag(): string | null; getTraceId(): string | null; flush(): void; setUserInfo(userId: string, userAddress: string, userName: string, userLoginType: string, typeLabel: string, l2Address?: string): void; } //# sourceMappingURL=funLogger.d.ts.map