UNPKG

myfflags-sdk

Version:
73 lines 1.84 kB
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