export type LifecycleFeature = 'autoTokenBootstrap' | 'memoryInjection' | 'autoGhostPass' | 'eventThrottle' | 'eventNoiseFilter' | 'crossProjectMemory' | 'mcpCategoryVisuals';
export interface LifecyclePolicyDecision {
    feature: LifecycleFeature;
    enabled: boolean;
    failOpen: boolean;
    reason: string;
    timestamp: number;
    contextHash: string;
}
interface LifecyclePolicyMetrics {
    total: number;
    enabled: number;
    disabled: number;
    lastDecision?: LifecyclePolicyDecision;
}
export declare class LifecyclePolicy {
    private readonly flags;
    private readonly metrics;
    constructor(overrides?: Partial<Record<LifecycleFeature, boolean>>);
    isEnabled(feature: LifecycleFeature): boolean;
    evaluate(feature: LifecycleFeature, context?: Record<string, unknown>): LifecyclePolicyDecision;
    getMetrics(): {
        flags: {
            autoTokenBootstrap: boolean;
            memoryInjection: boolean;
            autoGhostPass: boolean;
            eventThrottle: boolean;
            eventNoiseFilter: boolean;
            crossProjectMemory: boolean;
            mcpCategoryVisuals: boolean;
        };
        decisions: Record<string, LifecyclePolicyMetrics>;
        generatedAt: number;
    };
}
export declare const createLifecyclePolicy: (overrides?: Partial<Record<LifecycleFeature, boolean>>) => LifecyclePolicy;
export {};
