import { n as CodemationLogConfig } from "./CodemationWhitelabelConfig-Ca2mCUeC.js";

//#region src/infrastructure/logging/LogLevelPolicy.d.ts
type LogLevel = "silent" | "debug" | "info" | "warn" | "error";
/**
 * Minimum log level for @codemation/host loggers.
 * - `CODEMATION_LOG_LEVEL` overrides when set to a known level (for namespaces not matched by `codemation.config` log rules).
 * - Under Vitest, defaults to **warn** so routine `info`/`debug` noise stays off the terminal; `warn`/`error` still print.
 * - Otherwise defaults to **info**.
 *
 * When {@link applyCodemationLogConfig} is set, the first matching rule wins per namespace; unmatched namespaces use env defaults.
 *
 * Resolve a shared instance via {@link LogLevelPolicyFactory} (DI or `logLevelPolicyFactory`).
 */
declare class LogLevelPolicy {
  private cachedMin;
  private codemationRules;
  resolveMin(): LogLevel;
  private minLevelCached;
  resetForTests(): void;
  /**
   * Applies `codemation.config` log rules. Pass `undefined` to clear rules and use env-only behavior.
   */
  applyCodemationLogConfig(config: CodemationLogConfig | undefined): void;
  shouldEmit(level: Exclude<LogLevel, "silent">, namespace: string): boolean;
  private normalizeCodemationRules;
  private normalizeFilterPatterns;
  /**
   * Glob: only `*` is special (matches any substring). A lone `*` matches all namespaces.
   */
  private compileGlobPattern;
  private parseRuleLevel;
  private levelPassesAgainstMin;
}
//#endregion
//#region src/infrastructure/logging/LogLevelPolicyFactory.d.ts
/**
 * Process-wide {@link LogLevelPolicy} singleton for server and browser loggers.
 * Plain class (no `@injectable` from `@codemation/core`): client components import this file; decorating would pull core into the browser bundle.
 */
declare class LogLevelPolicyFactory {
  private readonly policy;
  create(): LogLevelPolicy;
}
/** Shared factory for call sites outside the DI container (e.g. next-host bootstrap). */
declare const logLevelPolicyFactory: LogLevelPolicyFactory;
//#endregion
export { LogLevelPolicy as i, logLevelPolicyFactory as n, LogLevel as r, LogLevelPolicyFactory as t };
//# sourceMappingURL=LogLevelPolicyFactory-ewCHLDLn.d.ts.map