/** * TODO(CJS-2806): Think of a better naming convention for this file, like `webmanifestV0_to_datafileV4` * TODO(CJS-2811): Implement schema validation * * SUPERSET OF V4 FULL STACK DATAFILE SCHEMA * Module for converting Web Manifest into superset of * Full Stack datafile schema, based on V4: * https://github.com/optimizely/optimizely/blob/5855e5ae5e705702134fee55f59bb7498573df40/src/www/services/datafile_generator/schema.json#L530 */ import { ExclusionGroup, ExperienceConfig, Experiment } from '../../../models'; import type { Experiment as SdkExperiment, Group as SdkGroup } from '@optimizely/optimizely-sdk/dist/shared_types'; /** * Coerce experiments into Full Stack datafile-like format that * Full Stack SDKs can understand. * * Based on V4 of the Full Stack datafile schema * https://github.com/optimizely/optimizely/blob/5855e5ae5e705702134fee55f59bb7498573df40/src/www/services/datafile_generator/schema.json#L530 * @param {Object} experiment * @returns {Object} experiment in FS format * @throws {Error} Will throw an error if no variations on experiment */ export declare const coerceExperimentToFSFormat: (exp: Experiment) => SdkExperiment; /** * Coerce groups into Full Stack datafile-like format that * Full Stack SDKs can understand. * * Based on V4 of the Full Stack datafile schema * https://github.com/optimizely/optimizely/blob/5855e5ae5e705702134fee55f59bb7498573df40/src/www/services/datafile_generator/schema.json#L468 * @param {Object} group * @returns {Object} group in FS format */ export declare const coerceGroupToFSFormat: (group: ExclusionGroup) => SdkGroup; /** * Return a datafile in Full Stack format. * * @param {Object} data - Web Manifest data in V0 format * @returns {{accountId: (string|*), anonymizeIP: boolean, botFiltering: boolean, projectId: (number|string), revision: string, version: string, audiences: any[], experiments: Array, layers: *, projectJS: string}} */ export declare const convertToDatafile: (manifest: ExperienceConfig) => { accountId: string; anonymizeIP: boolean; botFiltering: boolean; projectId: string; revision: string; version: string; typedAudiences: import("../../../models").Audience[]; experiments: SdkExperiment[]; groups: SdkGroup[]; events: never[]; attributes: never[]; audiences: never[]; }; declare const _default: { coerceExperimentToFSFormat: (exp: Experiment) => SdkExperiment; convertToDatafile: (manifest: ExperienceConfig) => { accountId: string; anonymizeIP: boolean; botFiltering: boolean; projectId: string; revision: string; version: string; typedAudiences: import("../../../models").Audience[]; experiments: SdkExperiment[]; groups: SdkGroup[]; events: never[]; attributes: never[]; audiences: never[]; }; }; export default _default;