import { a as OperationResultEnvelope, d as TRPCClientError, n as Operation, u as TRPCLink } from "./types-BrCJd1zp.cjs";
import { AnyRouter, InferrableClientTypes } from "@trpc/server/unstable-core-do-not-import";
//#region src/links/loggerLink.d.ts
type ConsoleEsque = {
  log: (...args: any[]) => void;
  error: (...args: any[]) => void;
};
type EnableFnOptions<TRouter extends InferrableClientTypes> = {
  direction: 'down';
  result: OperationResultEnvelope<unknown, TRPCClientError<TRouter>> | TRPCClientError<TRouter>;
} | (Operation & {
  direction: 'up';
});
type EnabledFn<TRouter extends AnyRouter> = (opts: EnableFnOptions<TRouter>) => boolean;
type LoggerLinkFnOptions<TRouter extends AnyRouter> = Operation & ({
  /**
   * Request result
   */
  direction: 'down';
  result: OperationResultEnvelope<unknown, TRPCClientError<TRouter>> | TRPCClientError<TRouter>;
  elapsedMs: number;
} | {
  /**
   * Request was just initialized
   */
  direction: 'up';
});
type LoggerLinkFn<TRouter extends AnyRouter> = (opts: LoggerLinkFnOptions<TRouter>) => void;
type ColorMode = 'ansi' | 'css' | 'none';
/**
 * Options for {@link loggerLink}.
 *
 * @see https://trpc.io/docs/client/links/loggerLink#loggerlink-options
 */
interface LoggerLinkOptions<TRouter extends AnyRouter> {
  /**
   * Replaces the built-in logger. Called when a call starts and for each
   * result or error, so a subscription calls it for every event.
   */
  logger?: LoggerLinkFn<TRouter>;
  /**
   * Decides whether to log a call.
   * @default () => true
   */
  enabled?: EnabledFn<TRouter>;
  /**
   * The console the built-in logger writes to.
   */
  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;
}
/**
 * Logs each call when it starts, and each result or error it gets with the
 * time since the start.
 *
 * @see https://trpc.io/docs/client/links/loggerLink
 */
declare function loggerLink<TRouter extends AnyRouter = AnyRouter>(opts?: LoggerLinkOptions<TRouter>): TRPCLink<TRouter>;
//#endregion
export { loggerLink as n, LoggerLinkOptions as t };
//# sourceMappingURL=loggerLink-BEMtA7V5.d.cts.map