/** * Per-server GitHub-release configuration for LSP servers AFT can * auto-download. * * Each entry is a templated asset-name pattern keyed by `(platform, arch)`. * The installer resolves the latest eligible release tag (with 7-day grace), * matches the asset against `assetTemplate(platform, arch, version)`, * downloads it, extracts to the cache, and exposes the binary. * * NOTE: terraform-ls uses HashiCorp's release API, not GitHub. It's a * separate code path; not included in this table. * * NOTE: oxlint is bundled inside the project's `node_modules/@oxlint/*` * package via the existing project-node_modules resolution. AFT does not * download it independently. Excluded from this table. * * NOTE: kotlin-language-server is hosted on JetBrains CDN, not GitHub. * Skipped from auto-download for v0.17.0 — users install via Homebrew / * scoop / Snap / coursier. */ export type Platform = "darwin" | "linux" | "win32"; export type Arch = "x64" | "arm64"; export type ArchiveType = "tar.gz" | "tar.xz" | "zip"; export interface GithubServerSpec { /** AFT server-kind id (matches `crates/aft/src/lsp/registry.rs::ServerKind::id_str`). */ readonly id: string; /** GitHub `owner/repo`. */ readonly githubRepo: string; /** Binary name placed under the cache `bin/` dir after extraction. */ readonly binary: string; /** Returns the asset filename and archive type for the given platform/arch + version. */ readonly resolveAsset: (platform: Platform, arch: Arch, version: string) => { name: string; archive: ArchiveType; } | null; /** * Path inside the extracted archive where the binary lives, relative to the * extraction root. May contain `${version}` placeholder. The installer * looks up this path and copies/symlinks it to `bin/`. */ readonly binaryPathInArchive: (platform: Platform, arch: Arch, version: string) => string; } export declare const GITHUB_LSP_TABLE: readonly GithubServerSpec[]; /** Find an entry by AFT server id. */ export declare function findGithubServerById(id: string): GithubServerSpec | undefined; /** * Map Node's `process.platform` and `process.arch` to our (Platform, Arch) * pair, or null when the host isn't supported. */ export declare function detectHostPlatform(): { platform: Platform; arch: Arch; } | null; //# sourceMappingURL=lsp-github-table.d.ts.map