/**
 * Platform information provider.
 * Abstracts process.platform, process.arch, and os.homedir() for testability.
 */

/**
 * Supported operating system platforms for binary downloads.
 */
export type SupportedPlatform = "darwin" | "linux" | "win32";

/**
 * Supported CPU architectures.
 */
export type SupportedArch = "x64" | "arm64";

export interface PlatformInfo {
  /** Operating system platform: 'linux', 'darwin', 'win32' */
  readonly platform: NodeJS.Platform;

  /** True for POSIX platforms (linux, darwin). False for win32. */
  readonly posix: boolean;

  /** CPU architecture: 'x64' or 'arm64' */
  readonly arch: SupportedArch;

  /** User's home directory */
  readonly homeDir: string;
}
