/**
 * @module version-info
 * Runtime SDK version information and capability detection
 *
 * Provides version metadata, feature flags, deprecation warnings,
 * and compatibility checks for the xBind SDK.
 *
 * Usage:
 * ```typescript
 * import { getVersion, hasCapability, checkCompatibility } from '@private.me/xbind';
 *
 * // Get version information
 * const version = getVersion();
 * console.log(version.semver); // "1.4.0"
 * console.log(version.features); // ["envelope-v4", "ml-kem-768", ...]
 *
 * // Check capabilities
 * if (hasCapability('envelope-v4')) {
 *   // Use v4 envelopes
 * }
 *
 * // Compatibility check
 * const compat = checkCompatibility('1.0.0');
 * if (!compat.compatible) {
 *   console.warn(compat.message);
 * }
 * ```
 */
/**
 * SDK version information
 */
export interface VersionInfo {
    /** Semantic version (e.g., "1.4.0") */
    semver: string;
    /** Major version number */
    major: number;
    /** Minor version number */
    minor: number;
    /** Patch version number */
    patch: number;
    /** Pre-release tag (e.g., "alpha", "beta", "rc.1") */
    prerelease?: string;
    /** Build metadata (e.g., git commit hash) */
    build?: string;
    /** SDK capabilities and features */
    features: string[];
    /** Deprecated features with migration paths */
    deprecated: DeprecatedFeature[];
    /** Build timestamp (ISO 8601) */
    buildDate: string;
    /** Node.js version used for build */
    nodeVersion?: string;
}
/**
 * Deprecated feature information
 */
export interface DeprecatedFeature {
    /** Feature name */
    name: string;
    /** Version when deprecated */
    since: string;
    /** Version when removed (if scheduled) */
    removedIn?: string;
    /** Migration instructions */
    migration: string;
    /** Documentation URL */
    docs?: string;
}
/**
 * Compatibility check result
 */
export interface CompatibilityResult {
    /** True if versions are compatible */
    compatible: boolean;
    /** Human-readable message */
    message: string;
    /** Severity level */
    severity: 'info' | 'warning' | 'error';
    /** Required version range */
    required?: string;
    /** Actual version */
    actual?: string;
}
/**
 * Feature capability flags
 */
export declare enum Capability {
    /** Transport Envelope v1 support */
    ENVELOPE_V1 = "envelope-v1",
    /** Transport Envelope v2 support (split-channel) */
    ENVELOPE_V2 = "envelope-v2",
    /** Transport Envelope v3 support (hybrid PQ) */
    ENVELOPE_V3 = "envelope-v3",
    /** Transport Envelope v4 support (ML-DSA signatures) */
    ENVELOPE_V4 = "envelope-v4",
    /** ML-KEM-768 post-quantum KEM */
    ML_KEM_768 = "ml-kem-768",
    /** ML-DSA-65 post-quantum signatures */
    ML_DSA_65 = "ml-dsa-65",
    /** X25519 ECDH key agreement */
    X25519_ECDH = "x25519-ecdh",
    /** Ed25519 signatures */
    ED25519_SIG = "ed25519-sig",
    /** XorIDA threshold sharing */
    XORIDA = "xorida",
    /** Split-channel transport */
    SPLIT_CHANNEL = "split-channel",
    /** Trust registry support */
    TRUST_REGISTRY = "trust-registry",
    /** Service discovery (mDNS) */
    SERVICE_DISCOVERY = "service-discovery",
    /** Invite system (viral growth) */
    INVITE_SYSTEM = "invite-system",
    /** Agent.call() API */
    AGENT_CALL = "agent-call",
    /** xFetch auto-upgrade */
    XFETCH = "xfetch",
    /** Dual-mode adapter (xBind + API key fallback) */
    DUAL_MODE = "dual-mode",
    /** Encrypted backup/restore */
    BACKUP_RESTORE = "backup-restore",
    /** Correlation ID tracing */
    CORRELATION_ID = "correlation-id",
    /** Structured logging */
    STRUCTURED_LOGGING = "structured-logging",
    /** DID succession */
    DID_SUCCESSION = "did-succession",
    /** Gateway connection state */
    GATEWAY_STATE = "gateway-state",
    /** Subscription proofs (portability) */
    SUBSCRIPTION_PROOF = "subscription-proof",
    /** Policy engine (constraints) */
    POLICY_ENGINE = "policy-engine",
    /** Approval flow (consent) */
    APPROVAL_FLOW = "approval-flow",
    /** Guardrails (error suggestions) */
    GUARDRAILS = "guardrails",
    /** HTTP client compatibility (axios, got) */
    HTTP_COMPAT = "http-compat",
    /** did:web resolver */
    DID_WEB = "did-web",
    /** did:privateme method */
    DID_PRIVATEME = "did:privateme",
    /** Redis nonce store */
    REDIS_NONCE = "redis-nonce",
    /** Retry transport */
    RETRY_TRANSPORT = "retry-transport"
}
/**
 * Get SDK version information
 *
 * Returns complete version metadata including semver, capabilities,
 * deprecated features, and build information.
 *
 * @returns Version information object
 *
 * @example
 * ```typescript
 * const version = getVersion();
 * console.log(`xBind v${version.semver}`);
 * console.log(`Features: ${version.features.join(', ')}`);
 * ```
 */
export declare function getVersion(): Readonly<VersionInfo>;
/**
 * Check if SDK supports a specific capability
 *
 * @param capability - Capability name to check
 * @returns True if capability is supported
 *
 * @example
 * ```typescript
 * if (hasCapability('envelope-v4')) {
 *   // Use ML-DSA signatures
 * }
 * ```
 */
export declare function hasCapability(capability: string | Capability): boolean;
/**
 * Get all supported capabilities
 *
 * @returns Array of capability names
 */
export declare function getCapabilities(): readonly string[];
/**
 * Check if a feature is deprecated
 *
 * @param feature - Feature name to check
 * @returns Deprecation info if deprecated, undefined otherwise
 */
export declare function getDeprecationInfo(feature: string): DeprecatedFeature | undefined;
export declare function warnIfDeprecated(feature: string): void;
/**
 * Parse semantic version string
 *
 * @param version - Version string (e.g., "1.3.5-beta.1+abc123")
 * @returns Parsed version components
 */
export declare function parseVersion(version: string): {
    major: number;
    minor: number;
    patch: number;
    prerelease?: string;
    build?: string;
};
/**
 * Compare two semantic versions
 *
 * @param a - First version
 * @param b - Second version
 * @returns -1 if a < b, 0 if a == b, 1 if a > b
 */
export declare function compareVersions(a: string, b: string): -1 | 0 | 1;
/**
 * Check version compatibility
 *
 * Determines if the current SDK version is compatible with a
 * required version constraint. Follows semantic versioning rules:
 * - Breaking changes increment major version
 * - Minor/patch updates are backward compatible
 *
 * @param requiredVersion - Required version or range (e.g., "1.0.0", "^1.2.0")
 * @returns Compatibility result with message
 *
 * @example
 * ```typescript
 * const compat = checkCompatibility('1.0.0');
 * if (!compat.compatible) {
 *   throw new Error(compat.message);
 * }
 * ```
 */
export declare function checkCompatibility(requiredVersion: string): CompatibilityResult;
/**
 * Get recommended SDK version for a feature
 *
 * Returns the minimum SDK version required to use a specific feature.
 *
 * @param feature - Feature or capability name
 * @returns Minimum version string, or undefined if feature is unknown
 */
export declare function getMinimumVersionFor(feature: string): string | undefined;
/**
 * Assert minimum SDK version
 *
 * Throws an error if the current SDK version does not meet the
 * minimum required version.
 *
 * @param minVersion - Minimum required version
 * @param context - Optional context message
 * @throws Error if version is too old
 *
 * @example
 * ```typescript
 * assertMinimumVersion('1.2.0', 'ML-KEM-768 support');
 * // Throws if SDK < 1.2.0
 * ```
 */
export declare function assertMinimumVersion(minVersion: string, context?: string): void;
