import { Provider, ResolutionDetails, EvaluationContext, JsonValue, ProviderMetadata, ProviderStatus, TrackingEventDetails } from '@openfeature/server-sdk'; import { DevCycleClient, DevCycleCloudClient, DevCycleOptions, DevCycleOptionsLocalEnabled, DevCycleOptionsCloudEnabled } from '../index'; export declare class DevCycleProvider implements Provider { readonly metadata: ProviderMetadata; readonly runsOn = "server"; private readonly logger; readonly devcycleClient: DevCycleClient | DevCycleCloudClient; /** * Create a DevCycleProvider from an existing DevCycle client */ constructor(devcycleClient: DevCycleClient | DevCycleCloudClient, options?: Pick); /** * Create a DevCycleProvider with a local bucketing client */ constructor(sdkKey: string, options?: DevCycleOptionsLocalEnabled); /** * Create a DevCycleProvider with a cloud bucketing client */ constructor(sdkKey: string, options: DevCycleOptionsCloudEnabled); get status(): ProviderStatus; initialize(context?: EvaluationContext): Promise; onClose(): Promise; track(trackingEventName: string, context?: EvaluationContext, trackingEventDetails?: TrackingEventDetails): void; /** * Generic function to retrieve a DVC variable and convert it to a ResolutionDetails. * @param flagKey * @param defaultValue * @param context * @private */ private getDVCVariable; /** * Resolve a boolean OpenFeature flag and its evaluation details. * @param flagKey * @param defaultValue * @param context */ resolveBooleanEvaluation(flagKey: string, defaultValue: boolean, context: EvaluationContext): Promise>; /** * Resolve a string OpenFeature flag and its evaluation details. * @param flagKey * @param defaultValue * @param context */ resolveStringEvaluation(flagKey: string, defaultValue: string, context: EvaluationContext): Promise>; /** * Resolve a number OpenFeature flag and its evaluation details. * @param flagKey * @param defaultValue * @param context */ resolveNumberEvaluation(flagKey: string, defaultValue: number, context: EvaluationContext): Promise>; /** * Resolve a object OpenFeature flag and its evaluation details. * @param flagKey * @param defaultValue * @param context */ resolveObjectEvaluation(flagKey: string, defaultValue: T, context: EvaluationContext): Promise>; /** * Convert a OpenFeature JsonValue default value into DVCJSON default value for evaluation. * @param jsonValue * @private */ private defaultValueFromJsonValue; /** * Convert a DVCVariable result into a OpenFeature ResolutionDetails. * TODO: add support for variant / reason / and more error codes from DVC. * @param variable * @private */ private resultFromDVCVariable; /** * Convert an OpenFeature EvaluationContext into a DevCycleUser. * @param context * @private */ private devcycleUserFromContext; /** * Convert customData from an OpenFeature EvaluationContextObject into a DevCycleUser customData. * @param evaluationData * @private */ private convertToDVCCustomDataJSON; }