import { type SystemInfo } from "./system.js"; import { type ToolResult } from "./tools.js"; import { type ContainerInfo } from "./envvars.js"; import { type InstallData } from "./install.js"; import { type CacheStatus } from "./cache.js"; import { type NetworkConfig } from "./network.js"; import { type Provenance } from "./provenance.js"; import { type AppiumDiagnostics } from "./appium.js"; import { type Finding } from "./findings.js"; export interface PrintDebugOptions { config: any; configPath?: string | null; configError?: Error | null; /** * When `true`, dump every `process.env` entry (redacted by name and * by value-shape). When falsy (the default), only env vars actually * referenced via `$VAR` in config / input files are listed. * * Wired from the `--include-env` flag on the `debug` subcommand. * Intentionally separate from container detection so users in * containers (the common case for env-leak risk) do NOT get an * implicit full env dump unless they explicitly ask for it. */ includeEnv?: boolean; /** * When set, the dump is written into this directory as two timestamped * files — `debug-.txt` and `debug-.json` — using * the same timestamp printed at the top of the dump. Parent directories * are created. Production callers pass `defaultDebugDir()`; unit tests * omit it so calling `printDebug` never writes a file as a side effect. */ outDir?: string; /** * The raw parsed CLI args (yargs argv). Used only by the Config provenance * section to report which flags overrode the validated config. Optional so * unit tests can call `printDebug` without synthesizing argv. */ args?: any; print?: (line: string) => void; } export declare function defaultDebugDir(): string; interface BrowserComponent { label: string; installed: boolean; detail?: string; } interface BrowserDiagnostic { name: string; supported: boolean; available: boolean; components: BrowserComponent[]; note?: string; } interface BrowsersData { timedOut?: boolean; error?: string; detectionFailed?: boolean; browsers?: BrowserDiagnostic[]; } interface DocDetectiveData { version: string; executionMethod?: string; loadedFrom: string; entryPoint: string; nodeVersion?: string; platform?: string; timestamp?: string; dependencies: Record; lockstepWarning?: string; error?: string; } interface EnvData { mode: "referenced" | "full"; scannedFileCount?: number; variables: Array<{ name: string; value: string; }>; } interface ConfigData { configPath: string | null; configError?: string; redacted: unknown; } export interface DebugData { generatedAt: string; system: SystemInfo; docDetective: DocDetectiveData; tools: ToolResult[]; browsers: BrowsersData; install: InstallData; appium: AppiumDiagnostics; cache: CacheStatus; container: ContainerInfo; network: NetworkConfig; environment: EnvData; provenance: Provenance; config: ConfigData; findings: Finding[]; } export declare function printDebug(opts: PrintDebugOptions): Promise; export {}; //# sourceMappingURL=index.d.ts.map