import type { CommandResolution, ExecCommandAnalysis } from "./exec-approvals-types.js"; export declare const DEFAULT_SAFE_BINS: string[]; export declare function isWindowsPlatform(platform?: string | null): boolean; /** * Splits a command string by chain operators (&&, ||, ;) while respecting quotes. * Returns null when no chain is present or when the chain is malformed. */ export declare function splitCommandChain(command: string): string[] | null; /** * Parses a shell command string into segments (handling pipes, chains, quoting) * and resolves each segment's executable. Cross-platform (Unix + Windows). */ export declare function analyzeShellCommand(params: { command: string; cwd?: string; env?: NodeJS.ProcessEnv; platform?: string | null; }): ExecCommandAnalysis; /** Analyzes a pre-split argv array (no shell parsing needed). */ export declare function analyzeArgvCommand(params: { argv: string[]; cwd?: string; env?: NodeJS.ProcessEnv; }): ExecCommandAnalysis; /** Normalizes a list of safe binary names to a lowercase Set. */ export declare function normalizeSafeBins(entries?: string[]): Set; /** Resolves safe bins from config, falling back to DEFAULT_SAFE_BINS when undefined. */ export declare function resolveSafeBins(entries?: string[] | null): Set; /** * Checks whether a command invokes a "safe" binary (e.g. grep, jq) without * file path arguments that could leak data. Safe bins are auto-allowed. */ export declare function isSafeBinUsage(params: { argv: string[]; resolution: CommandResolution | null; safeBins: Set; cwd?: string; fileExists?: (filePath: string) => boolean; }): boolean;