export type ChangeType = 'feature' | 'fix' | 'improvement' | 'breaking' | 'security' | 'deprecation';
export interface ChangelogItem {
    version: string;
    date: string;
    summary: string;
    /** Real classification when sourced from the update server; absent for the
     * npm-registry fallback (which can't categorize). */
    type?: ChangeType;
}
export interface PluginCompatibilityInfo {
    name: string;
    compatible: boolean;
    minVersion?: string;
}
export interface VersionInfo {
    current: string;
    latest: string;
    updateAvailable: boolean;
    severity?: 'patch' | 'minor' | 'major' | 'security';
    releaseDate?: string;
    changelog?: ChangelogItem[];
    updateCommand?: string;
    /** Human-readable breaking-change notes (update server only). */
    breakingChanges?: string[];
    /** True when the upgrade requires running database migrations. */
    hasMigrations?: boolean;
    /** Per-plugin compatibility hints (update server only). */
    pluginCompatibility?: PluginCompatibilityInfo[];
    /** Which backend produced this result — useful for diagnostics. */
    source?: 'update-server' | 'npm';
}
/**
 * Resolve the update status with the production-grade hybrid strategy:
 * query the Actuate update server first (rich, real release notes derived from
 * the published CHANGELOG), and transparently fall back to a direct npm
 * registry check if the server is unreachable or misconfigured. The server URL
 * is a fixed, trusted host (overridable via `ACTUATE_UPDATE_SERVER_URL`) — never
 * user-supplied — so this is not an SSRF surface.
 */
export declare function getUpdateStatus(currentVersion: string): Promise<VersionInfo>;
/**
 * Query the update server. Returns null on ANY failure (network, timeout,
 * non-2xx, malformed body) so the caller falls back to the npm check.
 */
export declare function checkForUpdatesViaServer(currentVersion: string, serverUrl: string): Promise<VersionInfo | null>;
/**
 * Check the npm registry directly for the latest published version.
 * No external update server needed — works everywhere.
 */
export declare function checkForUpdates(currentVersion: string): Promise<VersionInfo>;
/** Parse a semver string into its components. */
export declare function parseSemver(version: string): {
    major: number;
    minor: number;
    patch: number;
} | null;
//# sourceMappingURL=version-check.d.ts.map