export interface BaseProps { vendoVersion: string; osPlatform: string; nodeVersion: string; } export declare function baseProps(version: string): BaseProps; declare const PACKAGE_MANAGERS: readonly ["npm", "pnpm", "yarn", "bun"]; export type PackageManager = (typeof PACKAGE_MANAGERS)[number]; /** * Fixed public salt prepended to the project identifier before hashing. Not a * secret: its only job is making casual rainbow-lookup of well-known repo URLs * less trivial. Bump the version suffix to rotate every projectIdHash at once. */ export declare const PROJECT_ID_SALT = "vendo-telemetry-project-v1"; export interface ProjectProps { projectIdHash?: string; packageManager?: PackageManager; } /** * Normalize a git remote URL so ssh/https spellings of the same repo hash * identically: strip scheme ("https://", "ssh://") and "user@" prefixes, * drop an explicit ":PORT", unify the ssh ":" host separator to "/", * lowercase, drop trailing ".git". `git@github.com:a/b.git` and * `https://github.com/a/b` both become `github.com/a/b`. */ export declare function normalizeRemoteUrl(url: string): string; declare const KNOWN_REPO_HOSTS: readonly ["github.com", "gitlab.com", "bitbucket.org"]; export type RepoHost = (typeof KNOWN_REPO_HOSTS)[number] | "other"; /** * Classified git-remote host for the cloud lane's `repoHost` prop: the origin * remote's hostname when it is a well-known forge, "other" for any other * remote, undefined (key omitted) when no remote exists. Host classification * only — never the URL, path, or repo name. Never throws. */ export declare function repoHost(cwd?: string): RepoHost | undefined; /** * Project-scoped base props. Computed once per telemetry client (not per * event) because it reads the filesystem; see createTelemetry. Absent sources * omit the key entirely rather than sending a placeholder. */ export declare function projectProps(env: Record, cwd?: string): ProjectProps; export {};