import { AsyncLocalStorage } from 'async_hooks';
import winston from 'winston';
import type { FlowLogBuffer } from '../utils/FlowLogBuffer';
export declare const loggingContext: AsyncLocalStorage<unknown>;
/**
 * ###################################################################################
 * # WARNING! Only use this function within the context of Playwright test fixtures! #
 * ###################################################################################
 *
 * Playwright spins up one worker process per shard and constructs the entire
 * fixture graph (including the user test function) before entering our
 * AsyncLocalStorage scopes. That means early logs in the test body may execute
 * outside the ALS store even though we seed it later in the fixture.
 *
 * We therefore keep a *process-local* fallback that stores the most recent flow
 * ID and log buffer for the worker. Because Playwright guarantees only one test
 * runs at a time per process, this is safe: there is no race between concurrent
 * tests in the same worker, yet we still avoid leaking IDs across workers.
 */
export declare function setProcessLocalFlowId(flowId: string | null): void;
export declare function setProcessLocalLogBuffer(buffer: FlowLogBuffer | null): void;
export declare const appLogger: winston.Logger;
export declare const accessLogger: winston.Logger;
export declare const browserLogger: winston.Logger;
export declare const networkLogger: winston.Logger;
export declare function logErrorWithoutStack(message: string, error: any, level?: 'error' | 'warn' | 'info' | 'debug'): void;
export declare function formatLogInfoForTest(info: any): any;
//# sourceMappingURL=Logger.d.ts.map