export interface TargetingRule {
    attribute: string;
    operator: 'equals' | 'not_equals' | 'contains' | 'not_contains' | 'greater_than' | 'less_than';
    value: string;
}
export interface FeatureFlag {
    id: string;
    name: string;
    description: string;
    enabled: boolean;
    environments: {
        dev: boolean;
        staging: boolean;
        production: boolean;
    };
    rolloutPercentage: number;
    targetingRules: TargetingRule[];
    createdAt: string;
    updatedAt: string;
    userId: string;
}
export interface UserContext {
    userId: string;
    email?: string;
    plan?: string;
    country?: string;
    [key: string]: any;
}
export interface SDKConfig {
    apiUrl: string;
    apiKey?: string;
    environment?: 'dev' | 'staging' | 'production';
    cacheTimeout?: number;
}
/**
 * MFFS (My F* Flags) SDK Class
 * Classe principal para interagir com o sistema de flags
 */
export declare class MFFS {
    private config;
    private cache;
    constructor(config: SDKConfig);
    /**
     * Verifica se uma feature flag está habilitada para um usuário
     */
    isFeatureEnabled(flagName: string, userContext: UserContext): Promise<boolean>;
    /**
     * Busca todas as flags habilitadas para um usuário
     */
    getEnabledFeatures(userContext: UserContext): Promise<string[]>;
    /**
     * Busca flags do servidor (com cache)
     */
    private getFlags;
    /**
     * Avalia regras de targeting
     */
    private evaluateTargetingRules;
    /**
     * Avalia rollout percentual usando hash determinístico
     */
    private evaluateRolloutPercentage;
    /**
     * Limpa o cache
     */
    clearCache(): void;
    /**
     * Atualiza a configuração
     */
    updateConfig(newConfig: Partial<SDKConfig>): void;
}
export default MFFS;
//# sourceMappingURL=index.d.ts.map