/** Plugin identity and update-check helpers. */ export declare const PLUGIN_LICENSE = "MIT"; export declare const PLUGIN_REPOSITORY_URL = "https://github.com/WizisCool/dsh-ears"; export declare const PLUGIN_REPOSITORY_SLUG = "@WizisCool/dsh-ears"; export declare const DSH_COMPATIBILITY = ">=0.2.0-rc.1"; /** * `add` re-resolves `latest` from the registry and rewrites the saved range, * so the one command works for first install, in-range updates, and crossings * that `pnpm update` clamps to the existing semver range. */ export declare const UPDATE_COMMAND = "dsh plugin --profile web add dsh-ears"; export declare const NPM_LATEST_URL = "https://registry.npmjs.org/dsh-ears/latest"; export type AboutInfo = { readonly repository: string; readonly repositorySlug: string; readonly version: string; readonly license: string; readonly dshCompatibility: string; readonly updateCommand: string; }; export type UpdateCheckStatus = 'up-to-date' | 'update-available' | 'unpublished' | 'error'; export type UpdateCheckResult = { readonly status: UpdateCheckStatus; readonly installed: string; readonly latest: string | null; readonly updateCommand: string; }; export declare function readInstalledAboutInfo(packageJsonPath?: string): AboutInfo; export declare function repositoryUrlFromPackage(value: unknown): string; export declare function repositorySlugFromUrl(url: string): string; export declare function resolvePackageJsonPath(): string; /** * Compare SemVer release identifiers. The historical `1.2` shorthand remains * accepted and is normalized to `1.2.0`; prerelease identifiers still follow * SemVer precedence and build metadata is ignored. */ export declare function compareReleaseVersions(left: string, right: string): number | null; export declare function interpretUpdateCheck(installed: string, latest: string): Exclude | null; export declare function fetchLatestPublishedVersion(options?: { readonly fetchImpl?: typeof fetch; readonly signal?: AbortSignal; }): Promise<{ status: 'ok'; version: string; } | { status: 'unpublished'; } | { status: 'error'; message: string; }>; export declare function checkForPluginUpdate(options?: { readonly installed: string; readonly fetchImpl?: typeof fetch; readonly signal?: AbortSignal; }): Promise;