/**
 * Backend feature-flag check. Probes /v1/version and caches the result.
 * Used by SDK clients and the dispatcher to decide whether to emit v1 or v2
 * signing formats, whether to run the canonical mirror verifier, etc.
 *
 * Per spec §Backend feature flag:
 *   Current (291ae0a):        no signing flag           → emit v1 only
 *   +1 minor:                 signing.canonical-v1      → soft-required, emit both, prefer v2
 *   +3 minor:                 + signing.v1-retired      → emit v2 only, reject v1
 */
export interface BackendVersion {
    version: string;
    commit: string;
    features: string[];
}
/**
 * Fetch /v1/version. Caches per apiUrl for CACHE_TTL_MS.
 * Returns null if unreachable — caller should treat as "no flags advertised."
 */
export declare function fetchBackendVersion(apiUrl: string, fetchImpl?: typeof fetch): Promise<BackendVersion | null>;
/**
 * Check whether the backend advertises a specific feature. Network errors / missing endpoint
 * are treated as "feature absent" — safe default for callers.
 */
export declare function hasFeature(apiUrl: string, feature: string, fetchImpl?: typeof fetch): Promise<boolean>;
/**
 * Required/soft-required feature check for dispatcher startup.
 * Soft-required: missing → warn, continue. Hard-required: missing → throw.
 *
 * Logs to stderr as structured JSON so operators can scrape with promtail/fluentbit.
 * Matches spec §Telemetry → deprecation-window beacon pattern.
 */
export declare function checkRequiredFeatures(opts: {
    apiUrl: string;
    required?: string[];
    softRequired?: string[];
    operatorIAddress?: string;
    dispatcherVersion?: string;
}): Promise<{
    ok: boolean;
    missing: {
        required: string[];
        softRequired: string[];
    };
}>;
/** Clear the feature-version cache. Mostly useful in tests. */
export declare function clearBackendFeatureCache(): void;
//# sourceMappingURL=backend-features.d.ts.map