/**
 * Feature gating — the central guard for Pro/Team features.
 *
 * Usage:
 *   requireFeature('custom_injection_patterns');  // throws FeatureGatedError if not Pro+
 *   isFeatureEnabled('cloud_sync');               // returns boolean (soft check)
 */
import { type LicenseTier } from './keys.js';
export type GatedFeature = 'custom_injection_patterns' | 'custom_iron_dome_policies' | 'custom_firewall_rules' | 'audit_export' | 'skill_scanner_deep' | 'cloud_audit_sync' | 'cloud_sync' | 'team_management' | 'shared_patterns' | 'cortex_learning' | 'deps_quarantine' | 'deps_clean' | 'deps_auto_protect' | 'deps_global_scan' | 'memory_types' | 'memory_scopes' | 'dream_mode' | 'llm_reranking' | 'positive_feedback' | 'local_ai_explainer' | 'memory_file_scan' | 'review_copilot' | 'xray_deep';
export declare class FeatureGatedError extends Error {
    feature: GatedFeature;
    requiredTier: LicenseTier;
    constructor(feature: GatedFeature, requiredTier: LicenseTier);
}
/**
 * Check if a feature is enabled under the current licence tier.
 * Use for soft checks (e.g. hiding UI elements, silent returns).
 */
export declare function isFeatureEnabled(feature: GatedFeature): boolean;
/**
 * Require a feature — throws FeatureGatedError if the current licence
 * doesn't include it. Use at the entry point of gated features.
 */
export declare function requireFeature(feature: GatedFeature): void;
/**
 * Get the minimum tier required for a feature.
 */
export declare function getRequiredTier(feature: GatedFeature): LicenseTier;
/**
 * List all features with their required tier and current availability.
 */
export declare function listFeatures(): Array<{
    feature: GatedFeature;
    requiredTier: LicenseTier;
    enabled: boolean;
    description: string;
}>;
