import { BucketedUserConfig, DevCycleServerSDKOptions, VariableDefinitions, InferredVariableType, DVCCustomDataJSON, ConfigMetadata } from '@devcycle/types'; import { DevCycleUser, DVCVariable, DVCVariableValue, DVCVariableSet, DVCFeatureSet, DevCycleEvent, VariableAndMetadata } from '@devcycle/js-cloud-server-sdk'; import { DevCycleOptionsLocalEnabled } from './index'; import { DevCycleProvider } from './open-feature/DevCycleProvider'; import { EvalHook } from './hooks/EvalHook'; export declare class DevCycleClient { private clientUUID; private hostname; private sdkKey; private configHelper?; private clientConfigHelper?; private eventQueue; private onInitialized; private logger; private _isInitialized; private openFeatureProvider; private bucketingLib; private bucketingTracker?; private bucketingImportPromise; private platformDetails; private sdkPlatform?; private hooksRunner; get isInitialized(): boolean; constructor(sdkKey: string, options?: DevCycleOptionsLocalEnabled); private setPlatformDataInBucketingLib; initializeBucketing({ options, }: { options?: DevCycleServerSDKOptions; }): Promise; /** * @deprecated Use DevCycleProvider directly instead. * See docs: https://docs.devcycle.com/sdk/server-side-sdks/node/node-openfeature */ getOpenFeatureProvider(): Promise; /** * Notify the user when Features have been loaded from the server. * An optional callback can be passed in, and will return a promise if no callback has been passed in. * * @param onInitialized */ onClientInitialized(onInitialized?: (err?: Error) => void): Promise>; variable(user: DevCycleUser, key: K, defaultValue: T): DVCVariable; _variable(user: DevCycleUser, key: K, defaultValue: T): VariableAndMetadata; variableValue(user: DevCycleUser, key: K, defaultValue: T): InferredVariableType; allVariables(user: DevCycleUser): DVCVariableSet; allFeatures(user: DevCycleUser): DVCFeatureSet; track(user: DevCycleUser, event: DevCycleEvent): void; addHook(hook: EvalHook): void; private queueEvent; private queueAggregateEvent; private trackSDKConfigEvent; /** * Call this to obtain a config that is suitable for use in the "bootstrapConfig" option of client-side JS SDKs * Useful for serverside-rendering use cases where the server performs the initial rendering pass, and provides it * to the client along with the DevCycle config to allow hydration * @param user * @param userAgent */ getClientBootstrapConfig(user: DevCycleUser, userAgent: string): Promise; flushEvents(callback?: () => void): Promise; close(): Promise; setClientCustomData(clientCustomData: DVCCustomDataJSON): void; getConfigMetadata(): ConfigMetadata | undefined; }