export declare const IS_WINDOWS: boolean; export declare const IS_MACOS: boolean; export declare const IS_LINUX: boolean; /** Check if a command exists — cross-platform. */ export declare function commandExists(cmd: string): boolean; /** Global config directory (~/.solosquad or %APPDATA%/solosquad). */ export declare function globalConfigDir(): string; /** * npm global install command — chooses whether to prepend sudo by checking * the actual npm prefix's write permission (v1.0.3 fix). * * Pre-v1.0.3 unconditionally prepended `sudo` whenever the current process * was not root. That's wrong for nvm / fnm / asdf / Homebrew users whose * npm prefix lives inside their home dir (no sudo needed). The new check * runs `npm config get prefix` then `fs.accessSync(prefix, W_OK)` — when * the user can write to the prefix dir, no sudo is prepended. If anything * in that detection chain throws (command not found, prefix dir gone, * access denied), we fall back to `sudo` to keep the install command * usable on system-package installs (e.g. apt nodejs under /usr/local). */ export declare function npmGlobalInstallCmd(pkg: string): string; /** Default repos base path per OS. */ export declare function defaultReposPath(): string; /** Normalize line endings to LF. */ export declare function normalizeLine(content: string): string; /** * v1.2.4 §A.4 — normalize a user-pasted filesystem path. The most common * mistake is copying a Windows path with surrounding quotes — PowerShell * and Explorer's "Copy as path" both add them — and the literal quotes * end up *in* the path argument, so `fs.existsSync` reports it missing. * * Rules (order matters): * 1. trim whitespace * 2. strip a single pair of surrounding " " or ' ' (only if balanced) * 3. trim whitespace again (paste sometimes leaves internal pads) * 4. leave the path as-is otherwise — `path.resolve` handles both * `C:\foo\bar` and `/c/foo/bar` and mixed separators on Windows. * * Pure function — does not touch the filesystem. Caller is expected to * `path.resolve` + `fs.existsSync` after. */ export declare function normalizeUserPath(raw: string): string; /** Parse JSONL content (CRLF-safe). */ export declare function parseJsonl>(content: string): T[]; /** Parse TSV content (CRLF-safe). */ export declare function parseTsv(content: string): Record[]; /** Platform info string for diagnostics. */ export declare function platformInfo(): string; /** Current shell name. */ export declare function shellName(): string;