import { CanActivate, ExecutionContext } from '@nestjs/common';
import { Reflector } from '@nestjs/core';
import { FeatureGuardStore } from './feature-flag-cache.interface';
import { FeatureFlagOptions } from './feature-flag.interfaces';
export interface FeatureGuardRequest {
    __user_id?: string;
    __is_admin?: boolean;
    __feature_flags?: Record<string, boolean>;
}
export declare class FeatureGuard implements CanActivate {
    private readonly store;
    private readonly reflector;
    constructor(store: FeatureGuardStore, reflector: Reflector);
    canActivate(context: ExecutionContext): Promise<boolean>;
    static isFeatureEnabled(request: FeatureGuardRequest, flag: string): boolean;
}
export declare function FeatureFlag(flags: string | string[], options?: FeatureFlagOptions): MethodDecorator;
