/** * Version management for the scanning engine. * Handles versioning of rules, contracts, and engine compatibility. */ import type { VersionMetadata, CompatibilityConstraint } from "./types"; /** * The current contract version that the scanning engine conforms to. * This should be bumped when the contract interfaces change. */ export declare const CURRENT_CONTRACT_VERSION: VersionMetadata; /** * Version information for the current implementation. */ export declare const IMPLEMENTATION_VERSION: VersionMetadata; /** * Checks if the current engine version can run a rule. */ export declare function isRuleCompatible(constraint: CompatibilityConstraint): boolean; /** * Checks if two versions are compatible (differ only in patch/minor, not major). */ export declare function areVersionsCompatible(v1: VersionMetadata, v2: VersionMetadata): boolean; /** * Formats a version as a string (e.g., "1.2.3"). */ export declare function formatVersion(version: VersionMetadata): string; /** * Parses a version string (e.g., "1.2.3") into VersionMetadata. * Returns null if the string is invalid. */ export declare function parseVersion(versionString: string): VersionMetadata | null; /** * Builds a compatibility constraint for a minimum version. */ export declare function createMinimumVersionConstraint(minVersion: VersionMetadata): CompatibilityConstraint; /** * Builds a compatibility constraint for a version range. */ export declare function createVersionRangeConstraint(minVersion: VersionMetadata, maxVersion: VersionMetadata): CompatibilityConstraint; /** * Describes compatibility status with details. */ export type CompatibilityStatus = { compatible: boolean; reason: string; deprecatedSince?: VersionMetadata; }; /** * Checks rule compatibility with detailed status. */ export declare function checkRuleCompatibility(constraint: CompatibilityConstraint): CompatibilityStatus;