import type { AnyElysia } from 'elysia'; import type { EdenLink, Operation, OperationResultEnvelope } from './internal/operation'; type ConsoleEsque = { log: (...args: any[]) => void; error: (...args: any[]) => void; }; type EnableFnOptions = { direction: 'down'; result: OperationResultEnvelope | unknown; } | (Operation & { direction: 'up'; }); type EnabledFn = (opts: EnableFnOptions) => boolean; type LoggerLinkFnOptions = Operation & ({ /** * Request result */ direction: 'down'; result: OperationResultEnvelope | unknown; elapsedMs: number; } | { /** * Request was just initialized */ direction: 'up'; }); type LoggerLinkFn = (opts: LoggerLinkFnOptions) => void; type ColorMode = 'ansi' | 'css' | 'none'; export interface LoggerLinkOptions { logger?: LoggerLinkFn; enabled?: EnabledFn; /** * Used in the built-in defaultLogger */ console?: ConsoleEsque; /** * Color mode * @default typeof window === 'undefined' ? 'ansi' : 'css' */ colorMode?: ColorMode; /** * Include context in the log - defaults to false unless `colorMode` is 'css' */ withContext?: boolean; } export type ExtendedLoggerFnOptions = LoggerLinkFnOptions & { colorMode: ColorMode; withContext?: boolean; }; export type LoggerOptions = { c?: ConsoleEsque; colorMode?: ColorMode; withContext?: boolean; }; /** * @see https://trpc.io/docs/v11/client/links/loggerLink */ export declare function loggerLink(options?: LoggerLinkOptions): EdenLink; export {}; //# sourceMappingURL=logger-link.d.ts.map