UNPKG

@varia-bly/variably-sdk

Version:

Official JavaScript/TypeScript SDK for Variably feature flags, experimentation, and real-time dynamic configurations

79 lines 2.4 kB
/** * Variably JavaScript/TypeScript SDK Client */ import { VariablyConfig, UserContext, Event, FlagResult, SDKMetrics } from './types'; export declare class VariablyClient { private graphqlClient; private cache; private metrics; private logger; private config; constructor(config: VariablyConfig); /** * Evaluate a boolean feature flag */ evaluateFlagBool(flagKey: string, defaultValue: boolean, userContext: UserContext): Promise<boolean>; /** * Evaluate a string feature flag */ evaluateFlagString(flagKey: string, defaultValue: string, userContext: UserContext): Promise<string>; /** * Evaluate a number feature flag */ evaluateFlagNumber(flagKey: string, defaultValue: number, userContext: UserContext): Promise<number>; /** * Evaluate a JSON feature flag */ evaluateFlagJSON<T = any>(flagKey: string, defaultValue: T, userContext: UserContext): Promise<T>; /** * Evaluate a feature flag with full result details */ evaluateFlag(flagKey: string, defaultValue: any, userContext: UserContext): Promise<FlagResult>; /** * Evaluate multiple feature flags in batch */ evaluateFlags(flagKeys: string[], userContext: UserContext): Promise<Record<string, FlagResult>>; /** * Evaluate a feature gate */ evaluateGate(gateKey: string, userContext: UserContext): Promise<boolean>; /** * Track an analytics event */ track(event: Event): Promise<void>; /** * Track multiple events in batch */ trackBatch(events: Event[]): Promise<void>; /** * Clear the cache */ clearCache(): void; /** * Get SDK metrics */ getMetrics(): SDKMetrics; /** * Destroy the client and clean up resources */ destroy(): void; /** * Validate and normalize configuration */ private validateAndNormalizeConfig; /** * Generate cache key for flag evaluation */ private generateCacheKey; /** * Generate cache key for gate evaluation */ private generateGateCacheKey; /** * Generate a simple hash of user context for caching */ private hashUserContext; } export declare function createClient(config: VariablyConfig): VariablyClient; export declare function createClientFromEnv(): VariablyClient; //# sourceMappingURL=client.d.ts.map