export interface Version { major: number; minor: number; patch: number; } export declare function parseVersion(input: string): Version | null; export declare function compareVersions(a: Version, b: Version): number; export declare function isWindows(): boolean; export declare function homedir(): string; export declare function cargoBinDir(): string; export declare function execCommand(command: string): Promise<{ stdout: string; stderr: string; }>; export declare function commandExists(command: string): Promise; export declare function prependCargoToPath(): void; /** * Check if sync-ctl is accessible from a fresh login shell. * * This is critical because the installer's Node.js process may have * ~/.cargo/bin in PATH (via prependCargoToPath), but the user's actual * shell — and more importantly, the AI agent's shell — may not. * * A false here means agents will fail with "sync-ctl: command not found" * even though the binary is installed. */ export declare function isSyncCtlInLoginShell(): Promise; /** * Get the user's shell profile file path for PATH modifications. */ export declare function getShellProfile(): string;