import { ApiManagerInterface } from './api'; import { BucketingAttributes, BucketedVariation, BucketedFeature, ConversionAttributes, VisitorSegments, SegmentsAttributes, Entity, StoreData, ConfigResponseData, ConfigFeature, IdentityField, Config } from './types'; export { BucketedFeature, BucketedVariation, BucketingAttributes, ConfigAudience, ConfigExperience, ConfigFeature, ConfigGoal, ConfigLocation, ConfigProject, ConfigResponseData, ConversionAttributes, Config as ConvertConfig, Entity, ExperienceChange, ExperienceVariationConfig, GoalData, IdentityField, LocationAttributes, Path, RequireAtLeastOne, SegmentsAttributes, StoreData, VisitorSegments, VisitorTrackingEvents } from './types'; import { RuleError, BucketingError, EntityType, SystemEvents } from './enums'; export { BucketingError, EntityType, GoalDataKey, LogLevel, RuleError, SystemEvents, VariationChangeType } from './enums'; import { DataManagerInterface } from './data'; export { DataManagerInterface, DataStoreManagerInterface } from './data'; import { EventManagerInterface } from './event'; export { EventManagerInterface } from './event'; import { ExperienceManagerInterface } from './experience'; export { ExperienceManagerInterface } from './experience'; import { LogManagerInterface } from './logger'; export { LogManagerInterface } from './logger'; import { SegmentsManagerInterface } from './segments'; export { SegmentsManagerInterface } from './segments'; export { RuleManagerInterface } from './rules'; export { DataStore, FileLogger } from './utils'; /*! * Convert JS SDK * Version 1.0.0 * Copyright(c) 2020 Convert Insights, Inc * License Apache-2.0 */ interface ContextInterface { runExperience(experienceKey: string, attributes?: BucketingAttributes): BucketedVariation | RuleError | BucketingError; runExperiences(attributes?: BucketingAttributes): Array; runFeature(key: string, attributes?: BucketingAttributes): BucketedFeature | RuleError | Array; runFeatures(attributes?: BucketingAttributes): Array; trackConversion(goalKey: string, attributes?: ConversionAttributes): RuleError; setDefaultSegments(segments: VisitorSegments): void; runCustomSegments(segmentKeys: Array, attributes?: SegmentsAttributes): RuleError; updateVisitorProperties(visitorId: string, visitorProperties: Record): void; getConfigEntity(key: string, entityType: EntityType): Entity; getConfigEntityById(id: string, entityType: EntityType): Entity; getVisitorData(): StoreData; releaseQueues(reason?: string): Promise; } /*! * Convert JS SDK * Version 1.0.0 * Copyright(c) 2020 Convert Insights, Inc * License Apache-2.0 */ interface CoreInterface { data: ConfigResponseData; createContext(visitorId: string, visitorAttributes?: Record): ContextInterface; on(event: SystemEvents, fn: (args?: any, err?: any) => void): void; onReady(): Promise; } /*! * Convert JS SDK * Version 1.0.0 * Copyright(c) 2020 Convert Insights, Inc * License Apache-2.0 */ interface FeatureManagerInterface { getList(): Array; getFeature(key: string): ConfigFeature; getFeatureById(id: string): ConfigFeature; getFeatures(keys: Array): Array; getListAsObject(field: IdentityField): Record; getFeatureVariableType(key: string, variableName: string): string; getFeatureVariableTypeById(id: string, variableName: string): string; runFeature(visitorId: string, featureKey: string, attributes: BucketingAttributes, experienceKeys?: Array): BucketedFeature | RuleError | Array; isFeatureEnabled(visitorId: string, featureKey: string, attributes: BucketingAttributes, experienceKeys?: Array): boolean; isFeatureDeclared(key: string): boolean; runFeatureById(visitorId: string, featureId: string, attributes: BucketingAttributes, experienceIds?: Array): BucketedFeature | RuleError | Array; runFeatures(visitorId: string, attributes: BucketingAttributes, filter?: Record>): Array; } /*! * Convert JS SDK * Version 1.0.0 * Copyright(c) 2020 Convert Insights, Inc * License Apache-2.0 * * Server-side HTTP requests issued through this SDK announce themselves as * `User-Agent: ConvertAgent/1.0` (see packages/utils/src/http-client.ts). This * is an SDK invariant relied on by the metrics endpoint's isbot bypass and is * not customer- or env-configurable. */ /** * Core * @category Main * @constructor * @implements {CoreInterface} */ declare class Core implements CoreInterface { data: ConfigResponseData; private _dataManager; private _eventManager; private _experienceManager; private _featureManager; private _segmentsManager; private _loggerManager; private _apiManager; private _config; private _promise; private _fetchConfigTimerID; private _environment; private _initialized; /** * @param {Config} config * @param {DataManagerInterface} dependencies.dataManager * @param {EventManagerInterface} dependencies.eventManager * @param {ExperienceManagerInterface} dependencies.experienceManager * @param {FeatureManagerInterface} dependencies.featureManager * @param {SegmentsManagerInterface} dependencies.segmentsManager * @param {ApiManagerInterface} dependencies.apiManager * @param {LogManagerInterface} dependencies.loggerManager */ constructor(config: Config, { dataManager, eventManager, experienceManager, featureManager, segmentsManager, apiManager, loggerManager }: { dataManager: DataManagerInterface; eventManager: EventManagerInterface; experienceManager: ExperienceManagerInterface; featureManager: FeatureManagerInterface; segmentsManager: SegmentsManagerInterface; apiManager: ApiManagerInterface; loggerManager?: LogManagerInterface; }); /** * Initialize credentials, configData etc.. * @param config */ private initialize; /** * Create visitor context * @param {string} visitorId A visitor id * @param {Record=} visitorAttributes An object of key-value pairs that are used for audience and/or segments targeting * @return {ContextInterface | null} */ createContext(visitorId: string, visitorAttributes?: Record): ContextInterface | null; /** * Add event handler to event * @param {SystemEvents} event Event name * @param {function(args, err): void} fn A callback function which will be fired */ on(event: SystemEvents, fn: (args?: any, err?: any) => void): void; /** * Promisified ready event * @return {Promise} */ onReady(): Promise; /** * Fetch remote config data * @return {Promise} */ private fetchConfig; } /*! * Convert JS SDK test * Version 1.0.0 * Copyright(c) 2020 Convert Insights, Inc * License Apache-2.0 */ /** * Create new Convert SDK instance * @category Main * @constructor */ declare class ConvertSDK extends Core { /** * @param {ConfigType} config */ constructor(config?: Config); /** * Promisified ready event * @return {Promise} */ onReady(): Promise; } export { ConvertSDK as default }; export type { ContextInterface, CoreInterface as ConvertInterface, FeatureManagerInterface };