Contentful Personalization & Analytics
    Preparing search index...

    Main entry point for the Contentful Optimization React Native SDK.

    Extends CoreStateful with React Native-specific behavior including AsyncStorage persistence, network connectivity detection via @react-native-community/netinfo, and automatic event flushing when the app backgrounds.

    import { OptimizationProvider } from '@contentful/optimization-react-native'

    <OptimizationProvider clientId="your-client-id" environment="main">
    <App />
    </OptimizationProvider>
    import { OptimizationReactNativeSdk } from '@contentful/optimization-react-native'

    const optimization = await OptimizationReactNativeSdk.create({
    clientId: 'your-client-id',
    environment: 'main',
    })

    Hierarchy (View Summary)

    Index

    Properties

    _analytics: AnalyticsStateful

    Stateful analytics product.

    _personalization: PersonalizationStateful

    Stateful personalization product.

    Shared Optimization API client instance.

    config: Omit<CoreConfig, "name">

    Resolved core configuration (minus any name metadata).

    eventBuilder: EventBuilder

    Shared event builder instance.

    interceptors: LifecycleInterceptors = ...

    Lifecycle interceptors for events and state updates.

    states: CoreStates = ...

    Expose merged observable state for consumers.

    This object is stable for the lifetime of the instance so consumers can safely subscribe once without repeated resubscription churn.

    Accessors

    • get flagsResolver(): {
          resolve(
              changes?: {
                  key: string;
                  meta: { experienceId: string; variantIndex: number };
                  type: "Variable";
                  value: string | number | boolean | Record<string, JSONType> | null;
              }[],
          ): Flags;
      }

      Static resolver for evaluating personalized custom flags.

      Returns {
          resolve(
              changes?: {
                  key: string;
                  meta: { experienceId: string; variantIndex: number };
                  type: "Variable";
                  value: string | number | boolean | Record<string, JSONType> | null;
              }[],
          ): Flags;
      }

      • resolve: function
        • Build a flattened map of flag keys to values from a change list.

          Parameters

          • Optionalchanges: {
                key: string;
                meta: { experienceId: string; variantIndex: number };
                type: "Variable";
                value: string | number | boolean | Record<string, JSONType> | null;
            }[]

            The change list returned by the optimization service.

            • key: string

              Key identifying the subject of the change.

            • meta: { experienceId: string; variantIndex: number }

              Metadata describing the originating experience and variant index.

              • experienceId: string

                Identifier of the personalization or experiment experience.

              • variantIndex: number

                Index of the variant within the experience configuration.

                Typically corresponds to the array index in the experience's distribution.

            • type: "Variable"

              Discriminator for a variable change.

            • value: string | number | boolean | Record<string, JSONType> | null

              New value for the variable identified by ChangeBase.key.

          Returns Flags

          A map of flag keys to their resolved values.

          const flags = FlagsResolver.resolve(data.changes)
          if (flags['theme'] === 'dark') enableDarkMode()

          // Handles wrapped values produced by the API

          const flags = FlagsResolver.resolve([
          { type: 'Variable', key: 'price', value: { value: { amount: 10, currency: 'USD' } } }
          ])
          console.log(flags.price.amount) // 10
    • get mergeTagValueResolver(): {
          getValueFromProfile(
              id: string,
              profile?: {
                  audiences: string[];
                  id: string;
                  location: {
                      city?: string;
                      continent?: string;
                      coordinates?: { latitude: number; longitude: number };
                      country?: string;
                      countryCode?: string;
                      postalCode?: string;
                      region?: string;
                      regionCode?: string;
                      timezone?: string;
                  };
                  random: number;
                  session: {
                      activeSessionLength: number;
                      averageSessionLength: number;
                      count: number;
                      id: string;
                      isReturningVisitor: boolean;
                      landingPage: {
                          path: string;
                          query: Record<string, string>;
                          referrer: string;
                          search: string;
                          title?: string;
                          url: string;
                          [key: string]: JSONType;
                      };
                  };
                  stableId: string;
                  traits: Record<string, JSONType>;
              },
          ): string
          | undefined;
          normalizeSelectors(id: string): string[];
          resolve(
              mergeTagEntry:
                  | {
                      fields: {
                          nt_fallback?: string;
                          nt_mergetag_id: string;
                          nt_name: string;
                      };
                      metadata: {
                          concepts?: {
                              sys: { id: string; linkType: "TaxonomyConcept"; type: "Link" };
                          }[];
                          tags: { sys: { id: string; linkType: "Tag"; type: "Link" } }[];
                      };
                      sys: {
                          contentType: {
                              sys: { id: "nt_mergetag"; linkType: "ContentType"; type: "Link" };
                          };
                          createdAt: any;
                          environment: {
                              sys: { id: string; linkType: "Environment"; type: "Link" };
                          };
                          id: string;
                          locale?: string;
                          publishedVersion: number;
                          revision: number;
                          space: { sys: { id: string; linkType: "Space"; type: "Link" } };
                          type: "Entry";
                          updatedAt: any;
                      };
                  }
                  | undefined,
              profile?: {
                  audiences: string[];
                  id: string;
                  location: {
                      city?: string;
                      continent?: string;
                      coordinates?: { latitude: number; longitude: number };
                      country?: string;
                      countryCode?: string;
                      postalCode?: string;
                      region?: string;
                      regionCode?: string;
                      timezone?: string;
                  };
                  random: number;
                  session: {
                      activeSessionLength: number;
                      averageSessionLength: number;
                      count: number;
                      id: string;
                      isReturningVisitor: boolean;
                      landingPage: {
                          path: string;
                          query: Record<string, string>;
                          referrer: string;
                          search: string;
                          title?: string;
                          url: string;
                          [key: string]: JSONType;
                      };
                  };
                  stableId: string;
                  traits: Record<string, JSONType>;
              },
          ): string
          | undefined;
      }

      Static resolver that returns values sourced from a user profile based on a Contentful Merge Tag entry.

      Returns {
          getValueFromProfile(
              id: string,
              profile?: {
                  audiences: string[];
                  id: string;
                  location: {
                      city?: string;
                      continent?: string;
                      coordinates?: { latitude: number; longitude: number };
                      country?: string;
                      countryCode?: string;
                      postalCode?: string;
                      region?: string;
                      regionCode?: string;
                      timezone?: string;
                  };
                  random: number;
                  session: {
                      activeSessionLength: number;
                      averageSessionLength: number;
                      count: number;
                      id: string;
                      isReturningVisitor: boolean;
                      landingPage: {
                          path: string;
                          query: Record<string, string>;
                          referrer: string;
                          search: string;
                          title?: string;
                          url: string;
                          [key: string]: JSONType;
                      };
                  };
                  stableId: string;
                  traits: Record<string, JSONType>;
              },
          ): string
          | undefined;
          normalizeSelectors(id: string): string[];
          resolve(
              mergeTagEntry:
                  | {
                      fields: {
                          nt_fallback?: string;
                          nt_mergetag_id: string;
                          nt_name: string;
                      };
                      metadata: {
                          concepts?: {
                              sys: { id: string; linkType: "TaxonomyConcept"; type: "Link" };
                          }[];
                          tags: { sys: { id: string; linkType: "Tag"; type: "Link" } }[];
                      };
                      sys: {
                          contentType: {
                              sys: { id: "nt_mergetag"; linkType: "ContentType"; type: "Link" };
                          };
                          createdAt: any;
                          environment: {
                              sys: { id: string; linkType: "Environment"; type: "Link" };
                          };
                          id: string;
                          locale?: string;
                          publishedVersion: number;
                          revision: number;
                          space: { sys: { id: string; linkType: "Space"; type: "Link" } };
                          type: "Entry";
                          updatedAt: any;
                      };
                  }
                  | undefined,
              profile?: {
                  audiences: string[];
                  id: string;
                  location: {
                      city?: string;
                      continent?: string;
                      coordinates?: { latitude: number; longitude: number };
                      country?: string;
                      countryCode?: string;
                      postalCode?: string;
                      region?: string;
                      regionCode?: string;
                      timezone?: string;
                  };
                  random: number;
                  session: {
                      activeSessionLength: number;
                      averageSessionLength: number;
                      count: number;
                      id: string;
                      isReturningVisitor: boolean;
                      landingPage: {
                          path: string;
                          query: Record<string, string>;
                          referrer: string;
                          search: string;
                          title?: string;
                          url: string;
                          [key: string]: JSONType;
                      };
                  };
                  stableId: string;
                  traits: Record<string, JSONType>;
              },
          ): string
          | undefined;
      }

      • getValueFromProfile: function
        • Look up a merge-tag value from a profile using normalized selectors.

          Parameters

          • id: string

            Merge-tag identifier.

          • Optionalprofile: {
                audiences: string[];
                id: string;
                location: {
                    city?: string;
                    continent?: string;
                    coordinates?: { latitude: number; longitude: number };
                    country?: string;
                    countryCode?: string;
                    postalCode?: string;
                    region?: string;
                    regionCode?: string;
                    timezone?: string;
                };
                random: number;
                session: {
                    activeSessionLength: number;
                    averageSessionLength: number;
                    count: number;
                    id: string;
                    isReturningVisitor: boolean;
                    landingPage: {
                        path: string;
                        query: Record<string, string>;
                        referrer: string;
                        search: string;
                        title?: string;
                        url: string;
                        [key: string]: JSONType;
                    };
                };
                stableId: string;
                traits: Record<string, JSONType>;
            }

            Profile from which to resolve the value.

            • audiences: string[]

              List of audience identifiers that this profile currently belongs to.

            • id: string

              Primary identifier of the profile.

            • location: {
                  city?: string;
                  continent?: string;
                  coordinates?: { latitude: number; longitude: number };
                  country?: string;
                  countryCode?: string;
                  postalCode?: string;
                  region?: string;
                  regionCode?: string;
                  timezone?: string;
              }

              Geo-location information associated with the profile.

              • Optionalcity?: string

                City name associated with the location.

              • Optionalcontinent?: string

                Continent name associated with the location.

              • Optionalcoordinates?: { latitude: number; longitude: number }

                Geographical coordinates for the location.

                • latitude: number

                  Latitude component of the coordinates.

                • longitude: number

                  Longitude component of the coordinates.

              • Optionalcountry?: string

                Country name associated with the location.

              • OptionalcountryCode?: string

                Country code associated with the location.

                Validated to exactly COUNTRY_CODE_LENGTH characters, typically an ISO 3166-1 alpha-2 code.

              • OptionalpostalCode?: string

                Postal or ZIP code associated with the location.

              • Optionalregion?: string

                Region or state name associated with the location.

              • OptionalregionCode?: string

                Region or state code associated with the location.

              • Optionaltimezone?: string

                Time zone identifier associated with the location.

                Typically an IANA time zone string (e.g., "Europe/Berlin").

            • random: number

              Random value associated with the profile.

              Often used for deterministic bucketing (e.g., in experiments).

            • session: {
                  activeSessionLength: number;
                  averageSessionLength: number;
                  count: number;
                  id: string;
                  isReturningVisitor: boolean;
                  landingPage: {
                      path: string;
                      query: Record<string, string>;
                      referrer: string;
                      search: string;
                      title?: string;
                      url: string;
                      [key: string]: JSONType;
                  };
              }

              Aggregated session statistics for the profile.

              • activeSessionLength: number

                Duration of the active session.

              • averageSessionLength: number

                Average session duration across all sessions represented by this record.

                The unit should match SessionStatistics.activeSessionLength.

              • count: number

                Number of sessions associated with this profile or identifier.

                Often used in combination with SessionStatistics.averageSessionLength.

              • id: string

                Unique identifier for this session statistics record.

              • isReturningVisitor: boolean

                Indicates whether the visitor has been seen before.

                true typically means the visitor has at least one prior session.

              • landingPage: {
                    path: string;
                    query: Record<string, string>;
                    referrer: string;
                    search: string;
                    title?: string;
                    url: string;
                    [key: string]: JSONType;
                }

                Landing page for the session.

                Represents the first page the user visited in this session.

                Page

                • path: string

                  Path component of the page URL (e.g., /products/123).

                • query: Record<string, string>

                  Parsed query parameters for the page.

                • referrer: string

                  Referrer URL that led to the current page.

                • search: string

                  Raw search string including the leading ? (e.g., "?q=test").

                • Optionaltitle?: string

                  Title of the page as seen by the user.

                • url: string

                  Full URL of the page.

            • stableId: string

              Stable, long-lived identifier of the profile.

              Intended to remain constant across sessions and devices when possible. Usually equal to id.

            • traits: Record<string, JSONType>

              Traits describing the profile (user-level attributes).

              Traits

          Returns string | undefined

          A stringified primitive if found; otherwise undefined.

          Only string/number/boolean primitives are returned; objects/arrays are ignored.

          const value = MergeTagValueResolver.getValueFromProfile('user_email', profile)
          if (value) sendEmailTo(value)
      • normalizeSelectors: function
        • Generate a list of candidate selectors for a merge-tag ID.

          Parameters

          • id: string

            Merge-tag identifier (segments separated by _).

          Returns string[]

          Array of dot-path selectors to try against a profile.

          // "profile_name_first" -> [
          // 'profile',
          // 'profile.name',
          // 'profile.name.first'
          // ]
          const selectors = MergeTagValueResolver.normalizeSelectors('profile_name_first')
      • resolve: function
        • Resolve the display value for a merge-tag entry using the provided profile, falling back to the entry's configured nt_fallback when necessary.

          Parameters

          • mergeTagEntry:
                | {
                    fields: {
                        nt_fallback?: string;
                        nt_mergetag_id: string;
                        nt_name: string;
                    };
                    metadata: {
                        concepts?: {
                            sys: { id: string; linkType: "TaxonomyConcept"; type: "Link" };
                        }[];
                        tags: { sys: { id: string; linkType: "Tag"; type: "Link" } }[];
                    };
                    sys: {
                        contentType: {
                            sys: { id: "nt_mergetag"; linkType: "ContentType"; type: "Link" };
                        };
                        createdAt: any;
                        environment: {
                            sys: { id: string; linkType: "Environment"; type: "Link" };
                        };
                        id: string;
                        locale?: string;
                        publishedVersion: number;
                        revision: number;
                        space: { sys: { id: string; linkType: "Space"; type: "Link" } };
                        type: "Entry";
                        updatedAt: any;
                    };
                }
                | undefined

            The merge-tag entry to resolve.

            • {
                  fields: {
                      nt_fallback?: string;
                      nt_mergetag_id: string;
                      nt_name: string;
                  };
                  metadata: {
                      concepts?: {
                          sys: { id: string; linkType: "TaxonomyConcept"; type: "Link" };
                      }[];
                      tags: { sys: { id: string; linkType: "Tag"; type: "Link" } }[];
                  };
                  sys: {
                      contentType: {
                          sys: { id: "nt_mergetag"; linkType: "ContentType"; type: "Link" };
                      };
                      createdAt: any;
                      environment: {
                          sys: { id: string; linkType: "Environment"; type: "Link" };
                      };
                      id: string;
                      locale?: string;
                      publishedVersion: number;
                      revision: number;
                      space: { sys: { id: string; linkType: "Space"; type: "Link" } };
                      type: "Entry";
                      updatedAt: any;
                  };
              }
              • fields: { nt_fallback?: string; nt_mergetag_id: string; nt_name: string }
                • Optionalnt_fallback?: string

                  Fallback value to use when the merge tag cannot be resolved.

                • nt_mergetag_id: string

                  Internal identifier of the merge tag.

                • nt_name: string

                  Human-readable name of the merge tag.

              • metadata: {
                    concepts?: {
                        sys: { id: string; linkType: "TaxonomyConcept"; type: "Link" };
                    }[];
                    tags: { sys: { id: string; linkType: "Tag"; type: "Link" } }[];
                }

                Contentful metadata, including tags.

              • sys: {
                    contentType: {
                        sys: { id: "nt_mergetag"; linkType: "ContentType"; type: "Link" };
                    };
                    createdAt: any;
                    environment: { sys: { id: string; linkType: "Environment"; type: "Link" } };
                    id: string;
                    locale?: string;
                    publishedVersion: number;
                    revision: number;
                    space: { sys: { id: string; linkType: "Space"; type: "Link" } };
                    type: "Entry";
                    updatedAt: any;
                }

                System fields extended to constrain the content type to nt_mergetag.

            • undefined
          • Optionalprofile: {
                audiences: string[];
                id: string;
                location: {
                    city?: string;
                    continent?: string;
                    coordinates?: { latitude: number; longitude: number };
                    country?: string;
                    countryCode?: string;
                    postalCode?: string;
                    region?: string;
                    regionCode?: string;
                    timezone?: string;
                };
                random: number;
                session: {
                    activeSessionLength: number;
                    averageSessionLength: number;
                    count: number;
                    id: string;
                    isReturningVisitor: boolean;
                    landingPage: {
                        path: string;
                        query: Record<string, string>;
                        referrer: string;
                        search: string;
                        title?: string;
                        url: string;
                        [key: string]: JSONType;
                    };
                };
                stableId: string;
                traits: Record<string, JSONType>;
            }

            Optional profile used for lookup.

            • audiences: string[]

              List of audience identifiers that this profile currently belongs to.

            • id: string

              Primary identifier of the profile.

            • location: {
                  city?: string;
                  continent?: string;
                  coordinates?: { latitude: number; longitude: number };
                  country?: string;
                  countryCode?: string;
                  postalCode?: string;
                  region?: string;
                  regionCode?: string;
                  timezone?: string;
              }

              Geo-location information associated with the profile.

              • Optionalcity?: string

                City name associated with the location.

              • Optionalcontinent?: string

                Continent name associated with the location.

              • Optionalcoordinates?: { latitude: number; longitude: number }

                Geographical coordinates for the location.

                • latitude: number

                  Latitude component of the coordinates.

                • longitude: number

                  Longitude component of the coordinates.

              • Optionalcountry?: string

                Country name associated with the location.

              • OptionalcountryCode?: string

                Country code associated with the location.

                Validated to exactly COUNTRY_CODE_LENGTH characters, typically an ISO 3166-1 alpha-2 code.

              • OptionalpostalCode?: string

                Postal or ZIP code associated with the location.

              • Optionalregion?: string

                Region or state name associated with the location.

              • OptionalregionCode?: string

                Region or state code associated with the location.

              • Optionaltimezone?: string

                Time zone identifier associated with the location.

                Typically an IANA time zone string (e.g., "Europe/Berlin").

            • random: number

              Random value associated with the profile.

              Often used for deterministic bucketing (e.g., in experiments).

            • session: {
                  activeSessionLength: number;
                  averageSessionLength: number;
                  count: number;
                  id: string;
                  isReturningVisitor: boolean;
                  landingPage: {
                      path: string;
                      query: Record<string, string>;
                      referrer: string;
                      search: string;
                      title?: string;
                      url: string;
                      [key: string]: JSONType;
                  };
              }

              Aggregated session statistics for the profile.

              • activeSessionLength: number

                Duration of the active session.

              • averageSessionLength: number

                Average session duration across all sessions represented by this record.

                The unit should match SessionStatistics.activeSessionLength.

              • count: number

                Number of sessions associated with this profile or identifier.

                Often used in combination with SessionStatistics.averageSessionLength.

              • id: string

                Unique identifier for this session statistics record.

              • isReturningVisitor: boolean

                Indicates whether the visitor has been seen before.

                true typically means the visitor has at least one prior session.

              • landingPage: {
                    path: string;
                    query: Record<string, string>;
                    referrer: string;
                    search: string;
                    title?: string;
                    url: string;
                    [key: string]: JSONType;
                }

                Landing page for the session.

                Represents the first page the user visited in this session.

                Page

                • path: string

                  Path component of the page URL (e.g., /products/123).

                • query: Record<string, string>

                  Parsed query parameters for the page.

                • referrer: string

                  Referrer URL that led to the current page.

                • search: string

                  Raw search string including the leading ? (e.g., "?q=test").

                • Optionaltitle?: string

                  Title of the page as seen by the user.

                • url: string

                  Full URL of the page.

            • stableId: string

              Stable, long-lived identifier of the profile.

              Intended to remain constant across sessions and devices when possible. Usually equal to id.

            • traits: Record<string, JSONType>

              Traits describing the profile (user-level attributes).

              Traits

          Returns string | undefined

          The resolved string, or undefined if the entry is invalid and no fallback is available.

          const text = MergeTagValueResolver.resolve(entry, profile)
          render(text ?? 'Guest')
    • get personalizedEntryResolver(): {
          resolve: {
              <
                  S extends EntrySkeletonType = EntrySkeletonType,
                  L extends string = string,
              >(
                  entry: Entry<S, undefined, L>,
                  selectedPersonalizations?: {
                      experienceId: string;
                      sticky?: boolean;
                      variantIndex: number;
                      variants: Record<string, string>;
                  }[],
              ): ResolvedData<S, undefined, L>;
              <
                  S extends EntrySkeletonType,
                  M extends ChainModifiers = ChainModifiers,
                  L extends string = string,
              >(
                  entry: Entry<S, M, L>,
                  selectedPersonalizations?: {
                      experienceId: string;
                      sticky?: boolean;
                      variantIndex: number;
                      variants: Record<string, string>;
                  }[],
              ): ResolvedData<S, M, L>;
          };
          getPersonalizationEntry(
              params: {
                  personalizedEntry: {
                      fields: {
                          nt_experiences: (
                              | { sys: { id: string; linkType: string; type: "Link" } }
                              | {
                                  fields: {
                                      nt_audience?:
                                          | {
                                              fields: {
                                                  nt_audience_id: ...;
                                                  nt_description?: ...;
                                                  nt_name?: ...;
                                                  [key: ...]: ...;
                                              };
                                              metadata: { concepts?: ...; tags: ... };
                                              sys: {
                                                  contentType: ...;
                                                  createdAt: ...;
                                                  environment: ...;
                                                  id: ...;
                                                  locale?: ...;
                                                  publishedVersion: ...;
                                                  revision: ...;
                                                  space: ...;
                                                  type: ...;
                                                  updatedAt: ...;
                                              };
                                          }
                                          | null;
                                      nt_config: | {
                                          components?: (...)
                                          | (...);
                                          distribution?: (...) | (...);
                                          sticky?: (...) | (...) | (...);
                                          traffic?: (...) | (...);
                                      }
                                      | null;
                                      nt_description?: string
                                      | null;
                                      nt_experience_id: string;
                                      nt_name: string;
                                      nt_type: "nt_experiment" | "nt_personalization";
                                      nt_variants?: Entry[];
                                      [key: string]: JSONType;
                                  };
                                  metadata: {
                                      concepts?: { sys: ... }[];
                                      tags: { sys: { id: ...; linkType: ...; type: ... } }[];
                                  };
                                  sys: {
                                      contentType: {
                                          sys: { id: string; linkType: "ContentType"; type: "Link" };
                                      };
                                      createdAt: any;
                                      environment: {
                                          sys: { id: string; linkType: "Environment"; type: "Link" };
                                      };
                                      id: string;
                                      locale?: string;
                                      publishedVersion: number;
                                      revision: number;
                                      space: { sys: { id: string; linkType: "Space"; type: "Link" } };
                                      type: "Entry";
                                      updatedAt: any;
                                  };
                              }
                          )[];
                          [key: string]: JSONType;
                      };
                      metadata: {
                          concepts?: {
                              sys: { id: string; linkType: "TaxonomyConcept"; type: "Link" };
                          }[];
                          tags: { sys: { id: string; linkType: "Tag"; type: "Link" } }[];
                      };
                      sys: {
                          contentType: {
                              sys: { id: string; linkType: "ContentType"; type: "Link" };
                          };
                          createdAt: any;
                          environment: {
                              sys: { id: string; linkType: "Environment"; type: "Link" };
                          };
                          id: string;
                          locale?: string;
                          publishedVersion: number;
                          revision: number;
                          space: { sys: { id: string; linkType: "Space"; type: "Link" } };
                          type: "Entry";
                          updatedAt: any;
                      };
                  };
                  selectedPersonalizations: {
                      experienceId: string;
                      sticky?: boolean;
                      variantIndex: number;
                      variants: Record<string, string>;
                  }[];
              },
              skipValidation?: boolean,
          ):
              | {
                  fields: {
                      nt_audience?: | {
                          fields: {
                              nt_audience_id: string;
                              nt_description?: string;
                              nt_name?: string;
                              [key: string]: JSONType;
                          };
                          metadata: {
                              concepts?: { sys: { id: ...; linkType: ...; type: ... } }[];
                              tags: { sys: { id: string; linkType: "Tag"; type: "Link" } }[];
                          };
                          sys: {
                              contentType: {
                                  sys: { id: string; linkType: "ContentType"; type: "Link" };
                              };
                              createdAt: any;
                              environment: {
                                  sys: { id: string; linkType: "Environment"; type: "Link" };
                              };
                              id: string;
                              locale?: string;
                              publishedVersion: number;
                              revision: number;
                              space: { sys: { id: string; linkType: "Space"; type: "Link" } };
                              type: "Entry";
                              updatedAt: any;
                          };
                      }
                      | null;
                      nt_config: | {
                          components?: (
                              | {
                                  baseline: { hidden: ...; id: ... };
                                  type?: (...) | (...);
                                  variants: (...)[];
                              }
                              | {
                                  baseline: { value: ... };
                                  key: string;
                                  type: "InlineVariable";
                                  valueType: (...) | (...) | (...) | (...);
                                  variants: (...)[];
                              }
                          )[];
                          distribution?: number[];
                          sticky?: boolean;
                          traffic?: number;
                      }
                      | null;
                      nt_description?: string
                      | null;
                      nt_experience_id: string;
                      nt_name: string;
                      nt_type: "nt_experiment" | "nt_personalization";
                      nt_variants?: Entry[];
                      [key: string]: JSONType;
                  };
                  metadata: {
                      concepts?: {
                          sys: { id: string; linkType: "TaxonomyConcept"; type: "Link" };
                      }[];
                      tags: { sys: { id: string; linkType: "Tag"; type: "Link" } }[];
                  };
                  sys: {
                      contentType: {
                          sys: { id: string; linkType: "ContentType"; type: "Link" };
                      };
                      createdAt: any;
                      environment: {
                          sys: { id: string; linkType: "Environment"; type: "Link" };
                      };
                      id: string;
                      locale?: string;
                      publishedVersion: number;
                      revision: number;
                      space: { sys: { id: string; linkType: "Space"; type: "Link" } };
                      type: "Entry";
                      updatedAt: any;
                  };
              }
              | undefined;
          getSelectedPersonalization(
              params: {
                  personalizationEntry: {
                      fields: {
                          nt_audience?:
                              | {
                                  fields: {
                                      nt_audience_id: string;
                                      nt_description?: string;
                                      nt_name?: string;
                                      [key: string]: JSONType;
                                  };
                                  metadata: {
                                      concepts?: { sys: { id: ...; linkType: ...; type: ... } }[];
                                      tags: { sys: { id: string; linkType: "Tag"; type: "Link" } }[];
                                  };
                                  sys: {
                                      contentType: {
                                          sys: { id: string; linkType: "ContentType"; type: "Link" };
                                      };
                                      createdAt: any;
                                      environment: {
                                          sys: { id: string; linkType: "Environment"; type: "Link" };
                                      };
                                      id: string;
                                      locale?: string;
                                      publishedVersion: number;
                                      revision: number;
                                      space: { sys: { id: string; linkType: "Space"; type: "Link" } };
                                      type: "Entry";
                                      updatedAt: any;
                                  };
                              }
                              | null;
                          nt_config: | {
                              components?: (
                                  | {
                                      baseline: { hidden: ...; id: ... };
                                      type?: (...) | (...);
                                      variants: (...)[];
                                  }
                                  | {
                                      baseline: { value: ... };
                                      key: string;
                                      type: "InlineVariable";
                                      valueType: (...) | (...) | (...) | (...);
                                      variants: (...)[];
                                  }
                              )[];
                              distribution?: number[];
                              sticky?: boolean;
                              traffic?: number;
                          }
                          | null;
                          nt_description?: string
                          | null;
                          nt_experience_id: string;
                          nt_name: string;
                          nt_type: "nt_experiment" | "nt_personalization";
                          nt_variants?: Entry[];
                          [key: string]: JSONType;
                      };
                      metadata: {
                          concepts?: {
                              sys: { id: string; linkType: "TaxonomyConcept"; type: "Link" };
                          }[];
                          tags: { sys: { id: string; linkType: "Tag"; type: "Link" } }[];
                      };
                      sys: {
                          contentType: {
                              sys: { id: string; linkType: "ContentType"; type: "Link" };
                          };
                          createdAt: any;
                          environment: {
                              sys: { id: string; linkType: "Environment"; type: "Link" };
                          };
                          id: string;
                          locale?: string;
                          publishedVersion: number;
                          revision: number;
                          space: { sys: { id: string; linkType: "Space"; type: "Link" } };
                          type: "Entry";
                          updatedAt: any;
                      };
                  };
                  selectedPersonalizations: {
                      experienceId: string;
                      sticky?: boolean;
                      variantIndex: number;
                      variants: Record<string, string>;
                  }[];
              },
              skipValidation?: boolean,
          ):
              | {
                  experienceId: string;
                  sticky?: boolean;
                  variantIndex: number;
                  variants: Record<string, string>;
              }
              | undefined;
          getSelectedVariant(
              params: {
                  personalizationEntry: {
                      fields: {
                          nt_audience?:
                              | {
                                  fields: {
                                      nt_audience_id: string;
                                      nt_description?: string;
                                      nt_name?: string;
                                      [key: string]: JSONType;
                                  };
                                  metadata: {
                                      concepts?: { sys: { id: ...; linkType: ...; type: ... } }[];
                                      tags: { sys: { id: string; linkType: "Tag"; type: "Link" } }[];
                                  };
                                  sys: {
                                      contentType: {
                                          sys: { id: string; linkType: "ContentType"; type: "Link" };
                                      };
                                      createdAt: any;
                                      environment: {
                                          sys: { id: string; linkType: "Environment"; type: "Link" };
                                      };
                                      id: string;
                                      locale?: string;
                                      publishedVersion: number;
                                      revision: number;
                                      space: { sys: { id: string; linkType: "Space"; type: "Link" } };
                                      type: "Entry";
                                      updatedAt: any;
                                  };
                              }
                              | null;
                          nt_config: | {
                              components?: (
                                  | {
                                      baseline: { hidden: ...; id: ... };
                                      type?: (...) | (...);
                                      variants: (...)[];
                                  }
                                  | {
                                      baseline: { value: ... };
                                      key: string;
                                      type: "InlineVariable";
                                      valueType: (...) | (...) | (...) | (...);
                                      variants: (...)[];
                                  }
                              )[];
                              distribution?: number[];
                              sticky?: boolean;
                              traffic?: number;
                          }
                          | null;
                          nt_description?: string
                          | null;
                          nt_experience_id: string;
                          nt_name: string;
                          nt_type: "nt_experiment" | "nt_personalization";
                          nt_variants?: Entry[];
                          [key: string]: JSONType;
                      };
                      metadata: {
                          concepts?: {
                              sys: { id: string; linkType: "TaxonomyConcept"; type: "Link" };
                          }[];
                          tags: { sys: { id: string; linkType: "Tag"; type: "Link" } }[];
                      };
                      sys: {
                          contentType: {
                              sys: { id: string; linkType: "ContentType"; type: "Link" };
                          };
                          createdAt: any;
                          environment: {
                              sys: { id: string; linkType: "Environment"; type: "Link" };
                          };
                          id: string;
                          locale?: string;
                          publishedVersion: number;
                          revision: number;
                          space: { sys: { id: string; linkType: "Space"; type: "Link" } };
                          type: "Entry";
                          updatedAt: any;
                      };
                  };
                  personalizedEntry: {
                      fields: {
                          nt_experiences: (
                              | { sys: { id: string; linkType: string; type: "Link" } }
                              | {
                                  fields: {
                                      nt_audience?:
                                          | {
                                              fields: {
                                                  nt_audience_id: ...;
                                                  nt_description?: ...;
                                                  nt_name?: ...;
                                                  [key: ...]: ...;
                                              };
                                              metadata: { concepts?: ...; tags: ... };
                                              sys: {
                                                  contentType: ...;
                                                  createdAt: ...;
                                                  environment: ...;
                                                  id: ...;
                                                  locale?: ...;
                                                  publishedVersion: ...;
                                                  revision: ...;
                                                  space: ...;
                                                  type: ...;
                                                  updatedAt: ...;
                                              };
                                          }
                                          | null;
                                      nt_config: | {
                                          components?: (...)
                                          | (...);
                                          distribution?: (...) | (...);
                                          sticky?: (...) | (...) | (...);
                                          traffic?: (...) | (...);
                                      }
                                      | null;
                                      nt_description?: string
                                      | null;
                                      nt_experience_id: string;
                                      nt_name: string;
                                      nt_type: "nt_experiment" | "nt_personalization";
                                      nt_variants?: Entry[];
                                      [key: string]: JSONType;
                                  };
                                  metadata: {
                                      concepts?: { sys: ... }[];
                                      tags: { sys: { id: ...; linkType: ...; type: ... } }[];
                                  };
                                  sys: {
                                      contentType: {
                                          sys: { id: string; linkType: "ContentType"; type: "Link" };
                                      };
                                      createdAt: any;
                                      environment: {
                                          sys: { id: string; linkType: "Environment"; type: "Link" };
                                      };
                                      id: string;
                                      locale?: string;
                                      publishedVersion: number;
                                      revision: number;
                                      space: { sys: { id: string; linkType: "Space"; type: "Link" } };
                                      type: "Entry";
                                      updatedAt: any;
                                  };
                              }
                          )[];
                          [key: string]: JSONType;
                      };
                      metadata: {
                          concepts?: {
                              sys: { id: string; linkType: "TaxonomyConcept"; type: "Link" };
                          }[];
                          tags: { sys: { id: string; linkType: "Tag"; type: "Link" } }[];
                      };
                      sys: {
                          contentType: {
                              sys: { id: string; linkType: "ContentType"; type: "Link" };
                          };
                          createdAt: any;
                          environment: {
                              sys: { id: string; linkType: "Environment"; type: "Link" };
                          };
                          id: string;
                          locale?: string;
                          publishedVersion: number;
                          revision: number;
                          space: { sys: { id: string; linkType: "Space"; type: "Link" } };
                          type: "Entry";
                          updatedAt: any;
                      };
                  };
                  selectedVariantIndex: number;
              },
              skipValidation?: boolean,
          ): { hidden: boolean; id: string } | undefined;
          getSelectedVariantEntry<
              S extends EntrySkeletonType,
              M extends ChainModifiers = ChainModifiers,
              L extends string = string,
          >(
              params: {
                  personalizationEntry: {
                      fields: {
                          nt_audience?:
                              | {
                                  fields: {
                                      nt_audience_id: string;
                                      nt_description?: string;
                                      nt_name?: string;
                                      [key: string]: JSONType;
                                  };
                                  metadata: {
                                      concepts?: { sys: { id: ...; linkType: ...; type: ... } }[];
                                      tags: { sys: { id: string; linkType: "Tag"; type: "Link" } }[];
                                  };
                                  sys: {
                                      contentType: {
                                          sys: { id: string; linkType: "ContentType"; type: "Link" };
                                      };
                                      createdAt: any;
                                      environment: {
                                          sys: { id: string; linkType: "Environment"; type: "Link" };
                                      };
                                      id: string;
                                      locale?: string;
                                      publishedVersion: number;
                                      revision: number;
                                      space: { sys: { id: string; linkType: "Space"; type: "Link" } };
                                      type: "Entry";
                                      updatedAt: any;
                                  };
                              }
                              | null;
                          nt_config: | {
                              components?: (
                                  | {
                                      baseline: { hidden: ...; id: ... };
                                      type?: (...) | (...);
                                      variants: (...)[];
                                  }
                                  | {
                                      baseline: { value: ... };
                                      key: string;
                                      type: "InlineVariable";
                                      valueType: (...) | (...) | (...) | (...);
                                      variants: (...)[];
                                  }
                              )[];
                              distribution?: number[];
                              sticky?: boolean;
                              traffic?: number;
                          }
                          | null;
                          nt_description?: string
                          | null;
                          nt_experience_id: string;
                          nt_name: string;
                          nt_type: "nt_experiment" | "nt_personalization";
                          nt_variants?: Entry[];
                          [key: string]: JSONType;
                      };
                      metadata: {
                          concepts?: {
                              sys: { id: string; linkType: "TaxonomyConcept"; type: "Link" };
                          }[];
                          tags: { sys: { id: string; linkType: "Tag"; type: "Link" } }[];
                      };
                      sys: {
                          contentType: {
                              sys: { id: string; linkType: "ContentType"; type: "Link" };
                          };
                          createdAt: any;
                          environment: {
                              sys: { id: string; linkType: "Environment"; type: "Link" };
                          };
                          id: string;
                          locale?: string;
                          publishedVersion: number;
                          revision: number;
                          space: { sys: { id: string; linkType: "Space"; type: "Link" } };
                          type: "Entry";
                          updatedAt: any;
                      };
                  };
                  selectedVariant: { hidden: boolean; id: string };
              },
              skipValidation?: boolean,
          ): Entry<S, M, L> | undefined;
      }

      Static resolver for personalized Contentful entries (e.g., entry variants targeted to a profile audience).

      Returns {
          resolve: {
              <
                  S extends EntrySkeletonType = EntrySkeletonType,
                  L extends string = string,
              >(
                  entry: Entry<S, undefined, L>,
                  selectedPersonalizations?: {
                      experienceId: string;
                      sticky?: boolean;
                      variantIndex: number;
                      variants: Record<string, string>;
                  }[],
              ): ResolvedData<S, undefined, L>;
              <
                  S extends EntrySkeletonType,
                  M extends ChainModifiers = ChainModifiers,
                  L extends string = string,
              >(
                  entry: Entry<S, M, L>,
                  selectedPersonalizations?: {
                      experienceId: string;
                      sticky?: boolean;
                      variantIndex: number;
                      variants: Record<string, string>;
                  }[],
              ): ResolvedData<S, M, L>;
          };
          getPersonalizationEntry(
              params: {
                  personalizedEntry: {
                      fields: {
                          nt_experiences: (
                              | { sys: { id: string; linkType: string; type: "Link" } }
                              | {
                                  fields: {
                                      nt_audience?:
                                          | {
                                              fields: {
                                                  nt_audience_id: ...;
                                                  nt_description?: ...;
                                                  nt_name?: ...;
                                                  [key: ...]: ...;
                                              };
                                              metadata: { concepts?: ...; tags: ... };
                                              sys: {
                                                  contentType: ...;
                                                  createdAt: ...;
                                                  environment: ...;
                                                  id: ...;
                                                  locale?: ...;
                                                  publishedVersion: ...;
                                                  revision: ...;
                                                  space: ...;
                                                  type: ...;
                                                  updatedAt: ...;
                                              };
                                          }
                                          | null;
                                      nt_config: | {
                                          components?: (...)
                                          | (...);
                                          distribution?: (...) | (...);
                                          sticky?: (...) | (...) | (...);
                                          traffic?: (...) | (...);
                                      }
                                      | null;
                                      nt_description?: string
                                      | null;
                                      nt_experience_id: string;
                                      nt_name: string;
                                      nt_type: "nt_experiment" | "nt_personalization";
                                      nt_variants?: Entry[];
                                      [key: string]: JSONType;
                                  };
                                  metadata: {
                                      concepts?: { sys: ... }[];
                                      tags: { sys: { id: ...; linkType: ...; type: ... } }[];
                                  };
                                  sys: {
                                      contentType: {
                                          sys: { id: string; linkType: "ContentType"; type: "Link" };
                                      };
                                      createdAt: any;
                                      environment: {
                                          sys: { id: string; linkType: "Environment"; type: "Link" };
                                      };
                                      id: string;
                                      locale?: string;
                                      publishedVersion: number;
                                      revision: number;
                                      space: { sys: { id: string; linkType: "Space"; type: "Link" } };
                                      type: "Entry";
                                      updatedAt: any;
                                  };
                              }
                          )[];
                          [key: string]: JSONType;
                      };
                      metadata: {
                          concepts?: {
                              sys: { id: string; linkType: "TaxonomyConcept"; type: "Link" };
                          }[];
                          tags: { sys: { id: string; linkType: "Tag"; type: "Link" } }[];
                      };
                      sys: {
                          contentType: {
                              sys: { id: string; linkType: "ContentType"; type: "Link" };
                          };
                          createdAt: any;
                          environment: {
                              sys: { id: string; linkType: "Environment"; type: "Link" };
                          };
                          id: string;
                          locale?: string;
                          publishedVersion: number;
                          revision: number;
                          space: { sys: { id: string; linkType: "Space"; type: "Link" } };
                          type: "Entry";
                          updatedAt: any;
                      };
                  };
                  selectedPersonalizations: {
                      experienceId: string;
                      sticky?: boolean;
                      variantIndex: number;
                      variants: Record<string, string>;
                  }[];
              },
              skipValidation?: boolean,
          ):
              | {
                  fields: {
                      nt_audience?: | {
                          fields: {
                              nt_audience_id: string;
                              nt_description?: string;
                              nt_name?: string;
                              [key: string]: JSONType;
                          };
                          metadata: {
                              concepts?: { sys: { id: ...; linkType: ...; type: ... } }[];
                              tags: { sys: { id: string; linkType: "Tag"; type: "Link" } }[];
                          };
                          sys: {
                              contentType: {
                                  sys: { id: string; linkType: "ContentType"; type: "Link" };
                              };
                              createdAt: any;
                              environment: {
                                  sys: { id: string; linkType: "Environment"; type: "Link" };
                              };
                              id: string;
                              locale?: string;
                              publishedVersion: number;
                              revision: number;
                              space: { sys: { id: string; linkType: "Space"; type: "Link" } };
                              type: "Entry";
                              updatedAt: any;
                          };
                      }
                      | null;
                      nt_config: | {
                          components?: (
                              | {
                                  baseline: { hidden: ...; id: ... };
                                  type?: (...) | (...);
                                  variants: (...)[];
                              }
                              | {
                                  baseline: { value: ... };
                                  key: string;
                                  type: "InlineVariable";
                                  valueType: (...) | (...) | (...) | (...);
                                  variants: (...)[];
                              }
                          )[];
                          distribution?: number[];
                          sticky?: boolean;
                          traffic?: number;
                      }
                      | null;
                      nt_description?: string
                      | null;
                      nt_experience_id: string;
                      nt_name: string;
                      nt_type: "nt_experiment" | "nt_personalization";
                      nt_variants?: Entry[];
                      [key: string]: JSONType;
                  };
                  metadata: {
                      concepts?: {
                          sys: { id: string; linkType: "TaxonomyConcept"; type: "Link" };
                      }[];
                      tags: { sys: { id: string; linkType: "Tag"; type: "Link" } }[];
                  };
                  sys: {
                      contentType: {
                          sys: { id: string; linkType: "ContentType"; type: "Link" };
                      };
                      createdAt: any;
                      environment: {
                          sys: { id: string; linkType: "Environment"; type: "Link" };
                      };
                      id: string;
                      locale?: string;
                      publishedVersion: number;
                      revision: number;
                      space: { sys: { id: string; linkType: "Space"; type: "Link" } };
                      type: "Entry";
                      updatedAt: any;
                  };
              }
              | undefined;
          getSelectedPersonalization(
              params: {
                  personalizationEntry: {
                      fields: {
                          nt_audience?:
                              | {
                                  fields: {
                                      nt_audience_id: string;
                                      nt_description?: string;
                                      nt_name?: string;
                                      [key: string]: JSONType;
                                  };
                                  metadata: {
                                      concepts?: { sys: { id: ...; linkType: ...; type: ... } }[];
                                      tags: { sys: { id: string; linkType: "Tag"; type: "Link" } }[];
                                  };
                                  sys: {
                                      contentType: {
                                          sys: { id: string; linkType: "ContentType"; type: "Link" };
                                      };
                                      createdAt: any;
                                      environment: {
                                          sys: { id: string; linkType: "Environment"; type: "Link" };
                                      };
                                      id: string;
                                      locale?: string;
                                      publishedVersion: number;
                                      revision: number;
                                      space: { sys: { id: string; linkType: "Space"; type: "Link" } };
                                      type: "Entry";
                                      updatedAt: any;
                                  };
                              }
                              | null;
                          nt_config: | {
                              components?: (
                                  | {
                                      baseline: { hidden: ...; id: ... };
                                      type?: (...) | (...);
                                      variants: (...)[];
                                  }
                                  | {
                                      baseline: { value: ... };
                                      key: string;
                                      type: "InlineVariable";
                                      valueType: (...) | (...) | (...) | (...);
                                      variants: (...)[];
                                  }
                              )[];
                              distribution?: number[];
                              sticky?: boolean;
                              traffic?: number;
                          }
                          | null;
                          nt_description?: string
                          | null;
                          nt_experience_id: string;
                          nt_name: string;
                          nt_type: "nt_experiment" | "nt_personalization";
                          nt_variants?: Entry[];
                          [key: string]: JSONType;
                      };
                      metadata: {
                          concepts?: {
                              sys: { id: string; linkType: "TaxonomyConcept"; type: "Link" };
                          }[];
                          tags: { sys: { id: string; linkType: "Tag"; type: "Link" } }[];
                      };
                      sys: {
                          contentType: {
                              sys: { id: string; linkType: "ContentType"; type: "Link" };
                          };
                          createdAt: any;
                          environment: {
                              sys: { id: string; linkType: "Environment"; type: "Link" };
                          };
                          id: string;
                          locale?: string;
                          publishedVersion: number;
                          revision: number;
                          space: { sys: { id: string; linkType: "Space"; type: "Link" } };
                          type: "Entry";
                          updatedAt: any;
                      };
                  };
                  selectedPersonalizations: {
                      experienceId: string;
                      sticky?: boolean;
                      variantIndex: number;
                      variants: Record<string, string>;
                  }[];
              },
              skipValidation?: boolean,
          ):
              | {
                  experienceId: string;
                  sticky?: boolean;
                  variantIndex: number;
                  variants: Record<string, string>;
              }
              | undefined;
          getSelectedVariant(
              params: {
                  personalizationEntry: {
                      fields: {
                          nt_audience?:
                              | {
                                  fields: {
                                      nt_audience_id: string;
                                      nt_description?: string;
                                      nt_name?: string;
                                      [key: string]: JSONType;
                                  };
                                  metadata: {
                                      concepts?: { sys: { id: ...; linkType: ...; type: ... } }[];
                                      tags: { sys: { id: string; linkType: "Tag"; type: "Link" } }[];
                                  };
                                  sys: {
                                      contentType: {
                                          sys: { id: string; linkType: "ContentType"; type: "Link" };
                                      };
                                      createdAt: any;
                                      environment: {
                                          sys: { id: string; linkType: "Environment"; type: "Link" };
                                      };
                                      id: string;
                                      locale?: string;
                                      publishedVersion: number;
                                      revision: number;
                                      space: { sys: { id: string; linkType: "Space"; type: "Link" } };
                                      type: "Entry";
                                      updatedAt: any;
                                  };
                              }
                              | null;
                          nt_config: | {
                              components?: (
                                  | {
                                      baseline: { hidden: ...; id: ... };
                                      type?: (...) | (...);
                                      variants: (...)[];
                                  }
                                  | {
                                      baseline: { value: ... };
                                      key: string;
                                      type: "InlineVariable";
                                      valueType: (...) | (...) | (...) | (...);
                                      variants: (...)[];
                                  }
                              )[];
                              distribution?: number[];
                              sticky?: boolean;
                              traffic?: number;
                          }
                          | null;
                          nt_description?: string
                          | null;
                          nt_experience_id: string;
                          nt_name: string;
                          nt_type: "nt_experiment" | "nt_personalization";
                          nt_variants?: Entry[];
                          [key: string]: JSONType;
                      };
                      metadata: {
                          concepts?: {
                              sys: { id: string; linkType: "TaxonomyConcept"; type: "Link" };
                          }[];
                          tags: { sys: { id: string; linkType: "Tag"; type: "Link" } }[];
                      };
                      sys: {
                          contentType: {
                              sys: { id: string; linkType: "ContentType"; type: "Link" };
                          };
                          createdAt: any;
                          environment: {
                              sys: { id: string; linkType: "Environment"; type: "Link" };
                          };
                          id: string;
                          locale?: string;
                          publishedVersion: number;
                          revision: number;
                          space: { sys: { id: string; linkType: "Space"; type: "Link" } };
                          type: "Entry";
                          updatedAt: any;
                      };
                  };
                  personalizedEntry: {
                      fields: {
                          nt_experiences: (
                              | { sys: { id: string; linkType: string; type: "Link" } }
                              | {
                                  fields: {
                                      nt_audience?:
                                          | {
                                              fields: {
                                                  nt_audience_id: ...;
                                                  nt_description?: ...;
                                                  nt_name?: ...;
                                                  [key: ...]: ...;
                                              };
                                              metadata: { concepts?: ...; tags: ... };
                                              sys: {
                                                  contentType: ...;
                                                  createdAt: ...;
                                                  environment: ...;
                                                  id: ...;
                                                  locale?: ...;
                                                  publishedVersion: ...;
                                                  revision: ...;
                                                  space: ...;
                                                  type: ...;
                                                  updatedAt: ...;
                                              };
                                          }
                                          | null;
                                      nt_config: | {
                                          components?: (...)
                                          | (...);
                                          distribution?: (...) | (...);
                                          sticky?: (...) | (...) | (...);
                                          traffic?: (...) | (...);
                                      }
                                      | null;
                                      nt_description?: string
                                      | null;
                                      nt_experience_id: string;
                                      nt_name: string;
                                      nt_type: "nt_experiment" | "nt_personalization";
                                      nt_variants?: Entry[];
                                      [key: string]: JSONType;
                                  };
                                  metadata: {
                                      concepts?: { sys: ... }[];
                                      tags: { sys: { id: ...; linkType: ...; type: ... } }[];
                                  };
                                  sys: {
                                      contentType: {
                                          sys: { id: string; linkType: "ContentType"; type: "Link" };
                                      };
                                      createdAt: any;
                                      environment: {
                                          sys: { id: string; linkType: "Environment"; type: "Link" };
                                      };
                                      id: string;
                                      locale?: string;
                                      publishedVersion: number;
                                      revision: number;
                                      space: { sys: { id: string; linkType: "Space"; type: "Link" } };
                                      type: "Entry";
                                      updatedAt: any;
                                  };
                              }
                          )[];
                          [key: string]: JSONType;
                      };
                      metadata: {
                          concepts?: {
                              sys: { id: string; linkType: "TaxonomyConcept"; type: "Link" };
                          }[];
                          tags: { sys: { id: string; linkType: "Tag"; type: "Link" } }[];
                      };
                      sys: {
                          contentType: {
                              sys: { id: string; linkType: "ContentType"; type: "Link" };
                          };
                          createdAt: any;
                          environment: {
                              sys: { id: string; linkType: "Environment"; type: "Link" };
                          };
                          id: string;
                          locale?: string;
                          publishedVersion: number;
                          revision: number;
                          space: { sys: { id: string; linkType: "Space"; type: "Link" } };
                          type: "Entry";
                          updatedAt: any;
                      };
                  };
                  selectedVariantIndex: number;
              },
              skipValidation?: boolean,
          ): { hidden: boolean; id: string } | undefined;
          getSelectedVariantEntry<
              S extends EntrySkeletonType,
              M extends ChainModifiers = ChainModifiers,
              L extends string = string,
          >(
              params: {
                  personalizationEntry: {
                      fields: {
                          nt_audience?:
                              | {
                                  fields: {
                                      nt_audience_id: string;
                                      nt_description?: string;
                                      nt_name?: string;
                                      [key: string]: JSONType;
                                  };
                                  metadata: {
                                      concepts?: { sys: { id: ...; linkType: ...; type: ... } }[];
                                      tags: { sys: { id: string; linkType: "Tag"; type: "Link" } }[];
                                  };
                                  sys: {
                                      contentType: {
                                          sys: { id: string; linkType: "ContentType"; type: "Link" };
                                      };
                                      createdAt: any;
                                      environment: {
                                          sys: { id: string; linkType: "Environment"; type: "Link" };
                                      };
                                      id: string;
                                      locale?: string;
                                      publishedVersion: number;
                                      revision: number;
                                      space: { sys: { id: string; linkType: "Space"; type: "Link" } };
                                      type: "Entry";
                                      updatedAt: any;
                                  };
                              }
                              | null;
                          nt_config: | {
                              components?: (
                                  | {
                                      baseline: { hidden: ...; id: ... };
                                      type?: (...) | (...);
                                      variants: (...)[];
                                  }
                                  | {
                                      baseline: { value: ... };
                                      key: string;
                                      type: "InlineVariable";
                                      valueType: (...) | (...) | (...) | (...);
                                      variants: (...)[];
                                  }
                              )[];
                              distribution?: number[];
                              sticky?: boolean;
                              traffic?: number;
                          }
                          | null;
                          nt_description?: string
                          | null;
                          nt_experience_id: string;
                          nt_name: string;
                          nt_type: "nt_experiment" | "nt_personalization";
                          nt_variants?: Entry[];
                          [key: string]: JSONType;
                      };
                      metadata: {
                          concepts?: {
                              sys: { id: string; linkType: "TaxonomyConcept"; type: "Link" };
                          }[];
                          tags: { sys: { id: string; linkType: "Tag"; type: "Link" } }[];
                      };
                      sys: {
                          contentType: {
                              sys: { id: string; linkType: "ContentType"; type: "Link" };
                          };
                          createdAt: any;
                          environment: {
                              sys: { id: string; linkType: "Environment"; type: "Link" };
                          };
                          id: string;
                          locale?: string;
                          publishedVersion: number;
                          revision: number;
                          space: { sys: { id: string; linkType: "Space"; type: "Link" } };
                          type: "Entry";
                          updatedAt: any;
                      };
                  };
                  selectedVariant: { hidden: boolean; id: string };
              },
              skipValidation?: boolean,
          ): Entry<S, M, L> | undefined;
      }

      • resolve: {
            <
                S extends EntrySkeletonType = EntrySkeletonType,
                L extends string = string,
            >(
                entry: Entry<S, undefined, L>,
                selectedPersonalizations?: {
                    experienceId: string;
                    sticky?: boolean;
                    variantIndex: number;
                    variants: Record<string, string>;
                }[],
            ): ResolvedData<S, undefined, L>;
            <
                S extends EntrySkeletonType,
                M extends ChainModifiers = ChainModifiers,
                L extends string = string,
            >(
                entry: Entry<S, M, L>,
                selectedPersonalizations?: {
                    experienceId: string;
                    sticky?: boolean;
                    variantIndex: number;
                    variants: Record<string, string>;
                }[],
            ): ResolvedData<S, M, L>;
        }
      • getPersonalizationEntry: function
        • Find the personalization entry corresponding to one of the selected experiences.

          Parameters

          • params: {
                personalizedEntry: {
                    fields: {
                        nt_experiences: (
                            | { sys: { id: string; linkType: string; type: "Link" } }
                            | {
                                fields: {
                                    nt_audience?:
                                        | {
                                            fields: {
                                                nt_audience_id: ...;
                                                nt_description?: ...;
                                                nt_name?: ...;
                                                [key: ...]: ...;
                                            };
                                            metadata: { concepts?: ...; tags: ... };
                                            sys: {
                                                contentType: ...;
                                                createdAt: ...;
                                                environment: ...;
                                                id: ...;
                                                locale?: ...;
                                                publishedVersion: ...;
                                                revision: ...;
                                                space: ...;
                                                type: ...;
                                                updatedAt: ...;
                                            };
                                        }
                                        | null;
                                    nt_config: | {
                                        components?: (...)
                                        | (...);
                                        distribution?: (...) | (...);
                                        sticky?: (...) | (...) | (...);
                                        traffic?: (...) | (...);
                                    }
                                    | null;
                                    nt_description?: string
                                    | null;
                                    nt_experience_id: string;
                                    nt_name: string;
                                    nt_type: "nt_experiment" | "nt_personalization";
                                    nt_variants?: Entry[];
                                    [key: string]: JSONType;
                                };
                                metadata: {
                                    concepts?: { sys: ... }[];
                                    tags: { sys: { id: ...; linkType: ...; type: ... } }[];
                                };
                                sys: {
                                    contentType: {
                                        sys: { id: string; linkType: "ContentType"; type: "Link" };
                                    };
                                    createdAt: any;
                                    environment: {
                                        sys: { id: string; linkType: "Environment"; type: "Link" };
                                    };
                                    id: string;
                                    locale?: string;
                                    publishedVersion: number;
                                    revision: number;
                                    space: { sys: { id: string; linkType: "Space"; type: "Link" } };
                                    type: "Entry";
                                    updatedAt: any;
                                };
                            }
                        )[];
                        [key: string]: JSONType;
                    };
                    metadata: {
                        concepts?: {
                            sys: { id: string; linkType: "TaxonomyConcept"; type: "Link" };
                        }[];
                        tags: { sys: { id: string; linkType: "Tag"; type: "Link" } }[];
                    };
                    sys: {
                        contentType: {
                            sys: { id: string; linkType: "ContentType"; type: "Link" };
                        };
                        createdAt: any;
                        environment: {
                            sys: { id: string; linkType: "Environment"; type: "Link" };
                        };
                        id: string;
                        locale?: string;
                        publishedVersion: number;
                        revision: number;
                        space: { sys: { id: string; linkType: "Space"; type: "Link" } };
                        type: "Entry";
                        updatedAt: any;
                    };
                };
                selectedPersonalizations: {
                    experienceId: string;
                    sticky?: boolean;
                    variantIndex: number;
                    variants: Record<string, string>;
                }[];
            }

            Object containing the baseline personalized entry and the selections.

          • skipValidation: boolean = false

            When true, skip type/shape validation for perf.

          Returns
              | {
                  fields: {
                      nt_audience?: | {
                          fields: {
                              nt_audience_id: string;
                              nt_description?: string;
                              nt_name?: string;
                              [key: string]: JSONType;
                          };
                          metadata: {
                              concepts?: { sys: { id: ...; linkType: ...; type: ... } }[];
                              tags: { sys: { id: string; linkType: "Tag"; type: "Link" } }[];
                          };
                          sys: {
                              contentType: {
                                  sys: { id: string; linkType: "ContentType"; type: "Link" };
                              };
                              createdAt: any;
                              environment: {
                                  sys: { id: string; linkType: "Environment"; type: "Link" };
                              };
                              id: string;
                              locale?: string;
                              publishedVersion: number;
                              revision: number;
                              space: { sys: { id: string; linkType: "Space"; type: "Link" } };
                              type: "Entry";
                              updatedAt: any;
                          };
                      }
                      | null;
                      nt_config: | {
                          components?: (
                              | {
                                  baseline: { hidden: ...; id: ... };
                                  type?: (...) | (...);
                                  variants: (...)[];
                              }
                              | {
                                  baseline: { value: ... };
                                  key: string;
                                  type: "InlineVariable";
                                  valueType: (...) | (...) | (...) | (...);
                                  variants: (...)[];
                              }
                          )[];
                          distribution?: number[];
                          sticky?: boolean;
                          traffic?: number;
                      }
                      | null;
                      nt_description?: string
                      | null;
                      nt_experience_id: string;
                      nt_name: string;
                      nt_type: "nt_experiment" | "nt_personalization";
                      nt_variants?: Entry[];
                      [key: string]: JSONType;
                  };
                  metadata: {
                      concepts?: {
                          sys: { id: string; linkType: "TaxonomyConcept"; type: "Link" };
                      }[];
                      tags: { sys: { id: string; linkType: "Tag"; type: "Link" } }[];
                  };
                  sys: {
                      contentType: {
                          sys: { id: string; linkType: "ContentType"; type: "Link" };
                      };
                      createdAt: any;
                      environment: {
                          sys: { id: string; linkType: "Environment"; type: "Link" };
                      };
                      id: string;
                      locale?: string;
                      publishedVersion: number;
                      revision: number;
                      space: { sys: { id: string; linkType: "Space"; type: "Link" } };
                      type: "Entry";
                      updatedAt: any;
                  };
              }
              | undefined

          The matching PersonalizationEntry, or undefined if not found/invalid.

          • {
                fields: {
                    nt_audience?:
                        | {
                            fields: {
                                nt_audience_id: string;
                                nt_description?: string;
                                nt_name?: string;
                                [key: string]: JSONType;
                            };
                            metadata: {
                                concepts?: { sys: { id: ...; linkType: ...; type: ... } }[];
                                tags: { sys: { id: string; linkType: "Tag"; type: "Link" } }[];
                            };
                            sys: {
                                contentType: {
                                    sys: { id: string; linkType: "ContentType"; type: "Link" };
                                };
                                createdAt: any;
                                environment: {
                                    sys: { id: string; linkType: "Environment"; type: "Link" };
                                };
                                id: string;
                                locale?: string;
                                publishedVersion: number;
                                revision: number;
                                space: { sys: { id: string; linkType: "Space"; type: "Link" } };
                                type: "Entry";
                                updatedAt: any;
                            };
                        }
                        | null;
                    nt_config: | {
                        components?: (
                            | {
                                baseline: { hidden: ...; id: ... };
                                type?: (...) | (...);
                                variants: (...)[];
                            }
                            | {
                                baseline: { value: ... };
                                key: string;
                                type: "InlineVariable";
                                valueType: (...) | (...) | (...) | (...);
                                variants: (...)[];
                            }
                        )[];
                        distribution?: number[];
                        sticky?: boolean;
                        traffic?: number;
                    }
                    | null;
                    nt_description?: string
                    | null;
                    nt_experience_id: string;
                    nt_name: string;
                    nt_type: "nt_experiment" | "nt_personalization";
                    nt_variants?: Entry[];
                    [key: string]: JSONType;
                };
                metadata: {
                    concepts?: {
                        sys: { id: string; linkType: "TaxonomyConcept"; type: "Link" };
                    }[];
                    tags: { sys: { id: string; linkType: "Tag"; type: "Link" } }[];
                };
                sys: {
                    contentType: {
                        sys: { id: string; linkType: "ContentType"; type: "Link" };
                    };
                    createdAt: any;
                    environment: {
                        sys: { id: string; linkType: "Environment"; type: "Link" };
                    };
                    id: string;
                    locale?: string;
                    publishedVersion: number;
                    revision: number;
                    space: { sys: { id: string; linkType: "Space"; type: "Link" } };
                    type: "Entry";
                    updatedAt: any;
                };
            }
            • fields: {
                  nt_audience?:
                      | {
                          fields: {
                              nt_audience_id: string;
                              nt_description?: string;
                              nt_name?: string;
                              [key: string]: JSONType;
                          };
                          metadata: {
                              concepts?: { sys: { id: ...; linkType: ...; type: ... } }[];
                              tags: { sys: { id: string; linkType: "Tag"; type: "Link" } }[];
                          };
                          sys: {
                              contentType: {
                                  sys: { id: string; linkType: "ContentType"; type: "Link" };
                              };
                              createdAt: any;
                              environment: {
                                  sys: { id: string; linkType: "Environment"; type: "Link" };
                              };
                              id: string;
                              locale?: string;
                              publishedVersion: number;
                              revision: number;
                              space: { sys: { id: string; linkType: "Space"; type: "Link" } };
                              type: "Entry";
                              updatedAt: any;
                          };
                      }
                      | null;
                  nt_config: | {
                      components?: (
                          | {
                              baseline: { hidden: ...; id: ... };
                              type?: (...) | (...);
                              variants: (...)[];
                          }
                          | {
                              baseline: { value: ... };
                              key: string;
                              type: "InlineVariable";
                              valueType: (...) | (...) | (...) | (...);
                              variants: (...)[];
                          }
                      )[];
                      distribution?: number[];
                      sticky?: boolean;
                      traffic?: number;
                  }
                  | null;
                  nt_description?: string
                  | null;
                  nt_experience_id: string;
                  nt_name: string;
                  nt_type: "nt_experiment" | "nt_personalization";
                  nt_variants?: Entry[];
                  [key: string]: JSONType;
              }
              • Optionalnt_audience?:
                    | {
                        fields: {
                            nt_audience_id: string;
                            nt_description?: string;
                            nt_name?: string;
                            [key: string]: JSONType;
                        };
                        metadata: {
                            concepts?: { sys: { id: ...; linkType: ...; type: ... } }[];
                            tags: { sys: { id: string; linkType: "Tag"; type: "Link" } }[];
                        };
                        sys: {
                            contentType: {
                                sys: { id: string; linkType: "ContentType"; type: "Link" };
                            };
                            createdAt: any;
                            environment: {
                                sys: { id: string; linkType: "Environment"; type: "Link" };
                            };
                            id: string;
                            locale?: string;
                            publishedVersion: number;
                            revision: number;
                            space: { sys: { id: string; linkType: "Space"; type: "Link" } };
                            type: "Entry";
                            updatedAt: any;
                        };
                    }
                    | null

                The audience of the personalization (Audience).

                Optional and nullable; when omitted or null, the personalization may apply to all users.

              • nt_config:
                    | {
                        components?: (
                            | {
                                baseline: { hidden: ...; id: ... };
                                type?: (...) | (...);
                                variants: (...)[];
                            }
                            | {
                                baseline: { value: ... };
                                key: string;
                                type: "InlineVariable";
                                valueType: (...) | (...) | (...) | (...);
                                variants: (...)[];
                            }
                        )[];
                        distribution?: number[];
                        sticky?: boolean;
                        traffic?: number;
                    }
                    | null

                The configuration of a PersonalizationEntry (JSON).

                Accepts null or an explicit PersonalizationConfig and converts falsy/undefined values into a default configuration.

              • Optionalnt_description?: string | null

                The description of the personalization (Short Text).

                Optional, may be null if no description is provided.

              • nt_experience_id: string

                The personalization/experience ID related to this personalization entry.

              • nt_name: string

                The name of the personalization (Short Text).

              • nt_type: "nt_experiment" | "nt_personalization"

                The type of the personalization (nt_experiment | nt_personalization).

              • Optionalnt_variants?: Entry[]

                All used variants of the personalization (Contentful references to other Content Types).

                Modeled as an array of untyped Contentful entries and defaults to an empty array when omitted.

            • metadata: {
                  concepts?: {
                      sys: { id: string; linkType: "TaxonomyConcept"; type: "Link" };
                  }[];
                  tags: { sys: { id: string; linkType: "Tag"; type: "Link" } }[];
              }

              Contentful metadata, including tags.

            • sys: {
                  contentType: {
                      sys: { id: string; linkType: "ContentType"; type: "Link" };
                  };
                  createdAt: any;
                  environment: { sys: { id: string; linkType: "Environment"; type: "Link" } };
                  id: string;
                  locale?: string;
                  publishedVersion: number;
                  revision: number;
                  space: { sys: { id: string; linkType: "Space"; type: "Link" } };
                  type: "Entry";
                  updatedAt: any;
              }

              System-managed properties describing the entry.

          • undefined

          A personalization entry is a personalization configuration object supplied in a PersonalizedEntry.nt_experiences array. A personalized entry may relate to multiple personalizations.

          const personalizationEntry = PersonalizedEntryResolver.getPersonalizationEntry({
          personalizedEntry: entry,
          selectedPersonalizations
          })
      • getSelectedPersonalization: function
        • Look up the selection metadata for a specific personalization entry.

          Parameters

          • params: {
                personalizationEntry: {
                    fields: {
                        nt_audience?:
                            | {
                                fields: {
                                    nt_audience_id: string;
                                    nt_description?: string;
                                    nt_name?: string;
                                    [key: string]: JSONType;
                                };
                                metadata: {
                                    concepts?: { sys: { id: ...; linkType: ...; type: ... } }[];
                                    tags: { sys: { id: string; linkType: "Tag"; type: "Link" } }[];
                                };
                                sys: {
                                    contentType: {
                                        sys: { id: string; linkType: "ContentType"; type: "Link" };
                                    };
                                    createdAt: any;
                                    environment: {
                                        sys: { id: string; linkType: "Environment"; type: "Link" };
                                    };
                                    id: string;
                                    locale?: string;
                                    publishedVersion: number;
                                    revision: number;
                                    space: { sys: { id: string; linkType: "Space"; type: "Link" } };
                                    type: "Entry";
                                    updatedAt: any;
                                };
                            }
                            | null;
                        nt_config: | {
                            components?: (
                                | {
                                    baseline: { hidden: ...; id: ... };
                                    type?: (...) | (...);
                                    variants: (...)[];
                                }
                                | {
                                    baseline: { value: ... };
                                    key: string;
                                    type: "InlineVariable";
                                    valueType: (...) | (...) | (...) | (...);
                                    variants: (...)[];
                                }
                            )[];
                            distribution?: number[];
                            sticky?: boolean;
                            traffic?: number;
                        }
                        | null;
                        nt_description?: string
                        | null;
                        nt_experience_id: string;
                        nt_name: string;
                        nt_type: "nt_experiment" | "nt_personalization";
                        nt_variants?: Entry[];
                        [key: string]: JSONType;
                    };
                    metadata: {
                        concepts?: {
                            sys: { id: string; linkType: "TaxonomyConcept"; type: "Link" };
                        }[];
                        tags: { sys: { id: string; linkType: "Tag"; type: "Link" } }[];
                    };
                    sys: {
                        contentType: {
                            sys: { id: string; linkType: "ContentType"; type: "Link" };
                        };
                        createdAt: any;
                        environment: {
                            sys: { id: string; linkType: "Environment"; type: "Link" };
                        };
                        id: string;
                        locale?: string;
                        publishedVersion: number;
                        revision: number;
                        space: { sys: { id: string; linkType: "Space"; type: "Link" } };
                        type: "Entry";
                        updatedAt: any;
                    };
                };
                selectedPersonalizations: {
                    experienceId: string;
                    sticky?: boolean;
                    variantIndex: number;
                    variants: Record<string, string>;
                }[];
            }

            Object with the target personalization entry and selections.

          • skipValidation: boolean = false

            When true, skip type checks.

          Returns
              | {
                  experienceId: string;
                  sticky?: boolean;
                  variantIndex: number;
                  variants: Record<string, string>;
              }
              | undefined

          The matching SelectedPersonalization, if present.

          • {
                experienceId: string;
                sticky?: boolean;
                variantIndex: number;
                variants: Record<string, string>;
            }
            • experienceId: string

              Identifier of the personalization or experiment experience.

            • Optionalsticky?: boolean

              Indicates whether this personalization selection is sticky for the user.

              false
              

              Sticky selections should be reused on subsequent requests for the same user, rather than re-allocating a new variant.

            • variantIndex: number

              Index of the selected variant within the experience configuration.

              Typically corresponds to the index of the selected PersonalizationConfig entry.

            • variants: Record<string, string>

              Mapping of baseline entry IDs to their selected variant entry IDs.

              The keys are component identifiers and the values are the identifiers of the selected variant for that component.

          • undefined

          Selected personalizations are supplied by the Experience API in the experiences response data property.

          const selectedPersonalization = PersonalizedEntryResolver.getSelectedPersonalization({
          personalizationEntry,
          selectedPersonalizations
          })
      • getSelectedVariant: function
        • Get the replacement variant config for the given selection index.

          Parameters

          • params: {
                personalizationEntry: {
                    fields: {
                        nt_audience?:
                            | {
                                fields: {
                                    nt_audience_id: string;
                                    nt_description?: string;
                                    nt_name?: string;
                                    [key: string]: JSONType;
                                };
                                metadata: {
                                    concepts?: { sys: { id: ...; linkType: ...; type: ... } }[];
                                    tags: { sys: { id: string; linkType: "Tag"; type: "Link" } }[];
                                };
                                sys: {
                                    contentType: {
                                        sys: { id: string; linkType: "ContentType"; type: "Link" };
                                    };
                                    createdAt: any;
                                    environment: {
                                        sys: { id: string; linkType: "Environment"; type: "Link" };
                                    };
                                    id: string;
                                    locale?: string;
                                    publishedVersion: number;
                                    revision: number;
                                    space: { sys: { id: string; linkType: "Space"; type: "Link" } };
                                    type: "Entry";
                                    updatedAt: any;
                                };
                            }
                            | null;
                        nt_config: | {
                            components?: (
                                | {
                                    baseline: { hidden: ...; id: ... };
                                    type?: (...) | (...);
                                    variants: (...)[];
                                }
                                | {
                                    baseline: { value: ... };
                                    key: string;
                                    type: "InlineVariable";
                                    valueType: (...) | (...) | (...) | (...);
                                    variants: (...)[];
                                }
                            )[];
                            distribution?: number[];
                            sticky?: boolean;
                            traffic?: number;
                        }
                        | null;
                        nt_description?: string
                        | null;
                        nt_experience_id: string;
                        nt_name: string;
                        nt_type: "nt_experiment" | "nt_personalization";
                        nt_variants?: Entry[];
                        [key: string]: JSONType;
                    };
                    metadata: {
                        concepts?: {
                            sys: { id: string; linkType: "TaxonomyConcept"; type: "Link" };
                        }[];
                        tags: { sys: { id: string; linkType: "Tag"; type: "Link" } }[];
                    };
                    sys: {
                        contentType: {
                            sys: { id: string; linkType: "ContentType"; type: "Link" };
                        };
                        createdAt: any;
                        environment: {
                            sys: { id: string; linkType: "Environment"; type: "Link" };
                        };
                        id: string;
                        locale?: string;
                        publishedVersion: number;
                        revision: number;
                        space: { sys: { id: string; linkType: "Space"; type: "Link" } };
                        type: "Entry";
                        updatedAt: any;
                    };
                };
                personalizedEntry: {
                    fields: {
                        nt_experiences: (
                            | { sys: { id: string; linkType: string; type: "Link" } }
                            | {
                                fields: {
                                    nt_audience?:
                                        | {
                                            fields: {
                                                nt_audience_id: ...;
                                                nt_description?: ...;
                                                nt_name?: ...;
                                                [key: ...]: ...;
                                            };
                                            metadata: { concepts?: ...; tags: ... };
                                            sys: {
                                                contentType: ...;
                                                createdAt: ...;
                                                environment: ...;
                                                id: ...;
                                                locale?: ...;
                                                publishedVersion: ...;
                                                revision: ...;
                                                space: ...;
                                                type: ...;
                                                updatedAt: ...;
                                            };
                                        }
                                        | null;
                                    nt_config: | {
                                        components?: (...)
                                        | (...);
                                        distribution?: (...) | (...);
                                        sticky?: (...) | (...) | (...);
                                        traffic?: (...) | (...);
                                    }
                                    | null;
                                    nt_description?: string
                                    | null;
                                    nt_experience_id: string;
                                    nt_name: string;
                                    nt_type: "nt_experiment" | "nt_personalization";
                                    nt_variants?: Entry[];
                                    [key: string]: JSONType;
                                };
                                metadata: {
                                    concepts?: { sys: ... }[];
                                    tags: { sys: { id: ...; linkType: ...; type: ... } }[];
                                };
                                sys: {
                                    contentType: {
                                        sys: { id: string; linkType: "ContentType"; type: "Link" };
                                    };
                                    createdAt: any;
                                    environment: {
                                        sys: { id: string; linkType: "Environment"; type: "Link" };
                                    };
                                    id: string;
                                    locale?: string;
                                    publishedVersion: number;
                                    revision: number;
                                    space: { sys: { id: string; linkType: "Space"; type: "Link" } };
                                    type: "Entry";
                                    updatedAt: any;
                                };
                            }
                        )[];
                        [key: string]: JSONType;
                    };
                    metadata: {
                        concepts?: {
                            sys: { id: string; linkType: "TaxonomyConcept"; type: "Link" };
                        }[];
                        tags: { sys: { id: string; linkType: "Tag"; type: "Link" } }[];
                    };
                    sys: {
                        contentType: {
                            sys: { id: string; linkType: "ContentType"; type: "Link" };
                        };
                        createdAt: any;
                        environment: {
                            sys: { id: string; linkType: "Environment"; type: "Link" };
                        };
                        id: string;
                        locale?: string;
                        publishedVersion: number;
                        revision: number;
                        space: { sys: { id: string; linkType: "Space"; type: "Link" } };
                        type: "Entry";
                        updatedAt: any;
                    };
                };
                selectedVariantIndex: number;
            }

            Baseline entry, personalization entry, and 1‑based variant index.

          • skipValidation: boolean = false

            When true, skip type checks.

          Returns { hidden: boolean; id: string } | undefined

          The EntryReplacementVariant for the component, if any.

          • { hidden: boolean; id: string }
            • hidden: boolean

              Indicates whether this variant is hidden from allocation/traffic.

              false
              
            • id: string

              Unique identifier for the variant.

          • undefined

          Entry replacement variants are variant configurations specified in a personalization configuration component's variants array supplied by the personalized entry via its nt_config field.

          const selectedVariant = PersonalizedEntryResolver.getSelectedVariant({
          personalizedEntry: entry,
          personalizationEntry,
          selectedVariantIndex: 2 // second variant (1‑based)
          })
      • getSelectedVariantEntry: function
        • Resolve the concrete Contentful entry that corresponds to a selected variant.

          Type Parameters

          • S extends EntrySkeletonType

            Entry skeleton type.

          • M extends ChainModifiers = ChainModifiers

            Chain modifiers.

          • L extends string = string

            Locale code.

          Parameters

          • params: {
                personalizationEntry: {
                    fields: {
                        nt_audience?:
                            | {
                                fields: {
                                    nt_audience_id: string;
                                    nt_description?: string;
                                    nt_name?: string;
                                    [key: string]: JSONType;
                                };
                                metadata: {
                                    concepts?: { sys: { id: ...; linkType: ...; type: ... } }[];
                                    tags: { sys: { id: string; linkType: "Tag"; type: "Link" } }[];
                                };
                                sys: {
                                    contentType: {
                                        sys: { id: string; linkType: "ContentType"; type: "Link" };
                                    };
                                    createdAt: any;
                                    environment: {
                                        sys: { id: string; linkType: "Environment"; type: "Link" };
                                    };
                                    id: string;
                                    locale?: string;
                                    publishedVersion: number;
                                    revision: number;
                                    space: { sys: { id: string; linkType: "Space"; type: "Link" } };
                                    type: "Entry";
                                    updatedAt: any;
                                };
                            }
                            | null;
                        nt_config: | {
                            components?: (
                                | {
                                    baseline: { hidden: ...; id: ... };
                                    type?: (...) | (...);
                                    variants: (...)[];
                                }
                                | {
                                    baseline: { value: ... };
                                    key: string;
                                    type: "InlineVariable";
                                    valueType: (...) | (...) | (...) | (...);
                                    variants: (...)[];
                                }
                            )[];
                            distribution?: number[];
                            sticky?: boolean;
                            traffic?: number;
                        }
                        | null;
                        nt_description?: string
                        | null;
                        nt_experience_id: string;
                        nt_name: string;
                        nt_type: "nt_experiment" | "nt_personalization";
                        nt_variants?: Entry[];
                        [key: string]: JSONType;
                    };
                    metadata: {
                        concepts?: {
                            sys: { id: string; linkType: "TaxonomyConcept"; type: "Link" };
                        }[];
                        tags: { sys: { id: string; linkType: "Tag"; type: "Link" } }[];
                    };
                    sys: {
                        contentType: {
                            sys: { id: string; linkType: "ContentType"; type: "Link" };
                        };
                        createdAt: any;
                        environment: {
                            sys: { id: string; linkType: "Environment"; type: "Link" };
                        };
                        id: string;
                        locale?: string;
                        publishedVersion: number;
                        revision: number;
                        space: { sys: { id: string; linkType: "Space"; type: "Link" } };
                        type: "Entry";
                        updatedAt: any;
                    };
                };
                selectedVariant: { hidden: boolean; id: string };
            }

            Personalization entry and selected variant.

          • skipValidation: boolean = false

            When true, skip type checks.

          Returns Entry<S, M, L> | undefined

          The resolved entry typed as Entry or undefined.

          A personalized entry will resolve either to the baseline (the entry supplied as personalizedEntry) or the selected variant.

          const selectedVariantEntry = PersonalizedEntryResolver.getSelectedVariantEntry<{ fields: unknown }>({
          personalizationEntry,
          selectedVariant
          })

      Used by higher-level personalization flows to materialize entry content prior to event emission.

    Methods

    • Flush the queues for both the analytics and personalization products.

      Returns Promise<void>

      The personalization queue is only populated if events have been triggered while a device is offline.

      await core.flush()
      
    • Get the value of a custom flag derived from a set of optimization changes.

      Parameters

      • name: string

        The flag key to resolve.

      • Optionalchanges: {
            key: string;
            meta: { experienceId: string; variantIndex: number };
            type: "Variable";
            value: string | number | boolean | Record<string, JSONType> | null;
        }[]

        Optional change list to resolve from.

        • key: string

          Key identifying the subject of the change.

        • meta: { experienceId: string; variantIndex: number }

          Metadata describing the originating experience and variant index.

          • experienceId: string

            Identifier of the personalization or experiment experience.

          • variantIndex: number

            Index of the variant within the experience configuration.

            Typically corresponds to the array index in the experience's distribution.

        • type: "Variable"

          Discriminator for a variable change.

        • value: string | number | boolean | Record<string, JSONType> | null

          New value for the variable identified by ChangeBase.key.

      Returns unknown

      The resolved JSON value for the flag if available.

      This is a convenience wrapper around personalization’s flag resolution.

      const darkMode = core.getCustomFlag('dark-mode', data.changes)
      
    • Get all resolved custom flags derived from a set of optimization changes.

      Parameters

      • Optionalchanges: {
            key: string;
            meta: { experienceId: string; variantIndex: number };
            type: "Variable";
            value: string | number | boolean | Record<string, JSONType> | null;
        }[]

        Optional change list to resolve from.

        • key: string

          Key identifying the subject of the change.

        • meta: { experienceId: string; variantIndex: number }

          Metadata describing the originating experience and variant index.

          • experienceId: string

            Identifier of the personalization or experiment experience.

          • variantIndex: number

            Index of the variant within the experience configuration.

            Typically corresponds to the array index in the experience's distribution.

        • type: "Variable"

          Discriminator for a variable change.

        • value: string | number | boolean | Record<string, JSONType> | null

          New value for the variable identified by ChangeBase.key.

      Returns Flags

      The resolved custom flag map.

      This is a convenience wrapper around personalization’s flag resolution.

      const flags = core.getCustomFlags(data.changes)
      
    • Resolve a merge-tag value from the given entry node and profile.

      Parameters

      • embeddedEntryNodeTarget: {
            fields: {
                nt_fallback?: string;
                nt_mergetag_id: string;
                nt_name: string;
            };
            metadata: {
                concepts?: {
                    sys: { id: string; linkType: "TaxonomyConcept"; type: "Link" };
                }[];
                tags: { sys: { id: string; linkType: "Tag"; type: "Link" } }[];
            };
            sys: {
                contentType: {
                    sys: { id: "nt_mergetag"; linkType: "ContentType"; type: "Link" };
                };
                createdAt: any;
                environment: {
                    sys: { id: string; linkType: "Environment"; type: "Link" };
                };
                id: string;
                locale?: string;
                publishedVersion: number;
                revision: number;
                space: { sys: { id: string; linkType: "Space"; type: "Link" } };
                type: "Entry";
                updatedAt: any;
            };
        }

        The merge-tag entry node to resolve.

        • fields: { nt_fallback?: string; nt_mergetag_id: string; nt_name: string }
          • Optionalnt_fallback?: string

            Fallback value to use when the merge tag cannot be resolved.

          • nt_mergetag_id: string

            Internal identifier of the merge tag.

          • nt_name: string

            Human-readable name of the merge tag.

        • metadata: {
              concepts?: {
                  sys: { id: string; linkType: "TaxonomyConcept"; type: "Link" };
              }[];
              tags: { sys: { id: string; linkType: "Tag"; type: "Link" } }[];
          }

          Contentful metadata, including tags.

        • sys: {
              contentType: {
                  sys: { id: "nt_mergetag"; linkType: "ContentType"; type: "Link" };
              };
              createdAt: any;
              environment: { sys: { id: string; linkType: "Environment"; type: "Link" } };
              id: string;
              locale?: string;
              publishedVersion: number;
              revision: number;
              space: { sys: { id: string; linkType: "Space"; type: "Link" } };
              type: "Entry";
              updatedAt: any;
          }

          System fields extended to constrain the content type to nt_mergetag.

      • Optionalprofile: {
            audiences: string[];
            id: string;
            location: {
                city?: string;
                continent?: string;
                coordinates?: { latitude: number; longitude: number };
                country?: string;
                countryCode?: string;
                postalCode?: string;
                region?: string;
                regionCode?: string;
                timezone?: string;
            };
            random: number;
            session: {
                activeSessionLength: number;
                averageSessionLength: number;
                count: number;
                id: string;
                isReturningVisitor: boolean;
                landingPage: {
                    path: string;
                    query: Record<string, string>;
                    referrer: string;
                    search: string;
                    title?: string;
                    url: string;
                    [key: string]: JSONType;
                };
            };
            stableId: string;
            traits: Record<string, JSONType>;
        }

        Optional profile used for value lookup.

        • audiences: string[]

          List of audience identifiers that this profile currently belongs to.

        • id: string

          Primary identifier of the profile.

        • location: {
              city?: string;
              continent?: string;
              coordinates?: { latitude: number; longitude: number };
              country?: string;
              countryCode?: string;
              postalCode?: string;
              region?: string;
              regionCode?: string;
              timezone?: string;
          }

          Geo-location information associated with the profile.

          • Optionalcity?: string

            City name associated with the location.

          • Optionalcontinent?: string

            Continent name associated with the location.

          • Optionalcoordinates?: { latitude: number; longitude: number }

            Geographical coordinates for the location.

            • latitude: number

              Latitude component of the coordinates.

            • longitude: number

              Longitude component of the coordinates.

          • Optionalcountry?: string

            Country name associated with the location.

          • OptionalcountryCode?: string

            Country code associated with the location.

            Validated to exactly COUNTRY_CODE_LENGTH characters, typically an ISO 3166-1 alpha-2 code.

          • OptionalpostalCode?: string

            Postal or ZIP code associated with the location.

          • Optionalregion?: string

            Region or state name associated with the location.

          • OptionalregionCode?: string

            Region or state code associated with the location.

          • Optionaltimezone?: string

            Time zone identifier associated with the location.

            Typically an IANA time zone string (e.g., "Europe/Berlin").

        • random: number

          Random value associated with the profile.

          Often used for deterministic bucketing (e.g., in experiments).

        • session: {
              activeSessionLength: number;
              averageSessionLength: number;
              count: number;
              id: string;
              isReturningVisitor: boolean;
              landingPage: {
                  path: string;
                  query: Record<string, string>;
                  referrer: string;
                  search: string;
                  title?: string;
                  url: string;
                  [key: string]: JSONType;
              };
          }

          Aggregated session statistics for the profile.

          • activeSessionLength: number

            Duration of the active session.

          • averageSessionLength: number

            Average session duration across all sessions represented by this record.

            The unit should match SessionStatistics.activeSessionLength.

          • count: number

            Number of sessions associated with this profile or identifier.

            Often used in combination with SessionStatistics.averageSessionLength.

          • id: string

            Unique identifier for this session statistics record.

          • isReturningVisitor: boolean

            Indicates whether the visitor has been seen before.

            true typically means the visitor has at least one prior session.

          • landingPage: {
                path: string;
                query: Record<string, string>;
                referrer: string;
                search: string;
                title?: string;
                url: string;
                [key: string]: JSONType;
            }

            Landing page for the session.

            Represents the first page the user visited in this session.

            Page

            • path: string

              Path component of the page URL (e.g., /products/123).

            • query: Record<string, string>

              Parsed query parameters for the page.

            • referrer: string

              Referrer URL that led to the current page.

            • search: string

              Raw search string including the leading ? (e.g., "?q=test").

            • Optionaltitle?: string

              Title of the page as seen by the user.

            • url: string

              Full URL of the page.

        • stableId: string

          Stable, long-lived identifier of the profile.

          Intended to remain constant across sessions and devices when possible. Usually equal to id.

        • traits: Record<string, JSONType>

          Traits describing the profile (user-level attributes).

          Traits

      Returns string | undefined

      The resolved value (typically a string) or undefined if not found.

      const name = core.getMergeTagValue(mergeTagNode, profile)
      
    • Convenience wrapper for sending an identify event via personalization.

      Parameters

      • payload: {
            campaign?: {
                content?: string;
                medium?: string;
                name?: string;
                source?: string;
                term?: string;
            };
            locale?: string;
            location?: {
                city?: string;
                continent?: string;
                coordinates?: { latitude: number; longitude: number };
                country?: string;
                countryCode?: string;
                postalCode?: string;
                region?: string;
                regionCode?: string;
                timezone?: string;
            };
            page?: {
                path: string;
                query: Record<string, string>;
                referrer: string;
                search: string;
                title?: string;
                url: string;
                [key: string]: JSONType;
            };
            screen?: { name: string; [key: string]: JSONType };
            traits?: Record<string, JSONType>;
            userAgent?: string;
            userId: string;
        } & { profile?: { id: string; [key: string]: JSONType } }

        Identify builder arguments.

      Returns Promise<OptimizationData | undefined>

      The resulting OptimizationData for the identified user.

      const data = await core.identify({ userId: 'user-123', traits: { plan: 'pro' } })
      
    • Convenience wrapper for sending a page event via personalization.

      Parameters

      • payload: {
            campaign?: {
                content?: string;
                medium?: string;
                name?: string;
                source?: string;
                term?: string;
            };
            locale?: string;
            location?: {
                city?: string;
                continent?: string;
                coordinates?: { latitude: number; longitude: number };
                country?: string;
                countryCode?: string;
                postalCode?: string;
                region?: string;
                regionCode?: string;
                timezone?: string;
            };
            page?: {
                path: string;
                query: Record<string, string>;
                referrer: string;
                search: string;
                title?: string;
                url: string;
                [key: string]: JSONType;
            };
            properties?: {
                path?: string;
                query?: Record<string, string>;
                referrer?: string;
                search?: string;
                title?: string;
                url?: string;
                [key: string]: JSONType;
            };
            screen?: { name: string; [key: string]: JSONType };
            userAgent?: string;
        } & { profile?: { id: string; [key: string]: JSONType } }

        Page view builder arguments.

      Returns Promise<OptimizationData | undefined>

      The evaluated OptimizationData for this page view.

      const data = await core.page({ properties: { title: 'Home' } })
      
    • Resolve a Contentful entry to the appropriate personalized variant (or return the baseline entry if no matching variant is selected).

      Type Parameters

      • S extends EntrySkeletonType = EntrySkeletonType

        Entry skeleton type.

      • L extends string = string

        Locale code.

      Parameters

      • entry: Entry<S, undefined, L>

        The baseline entry to resolve.

      • Optionalpersonalizations: {
            experienceId: string;
            sticky?: boolean;
            variantIndex: number;
            variants: Record<string, string>;
        }[]

        Optional selection array for the current profile.

        • experienceId: string

          Identifier of the personalization or experiment experience.

        • Optionalsticky?: boolean

          Indicates whether this personalization selection is sticky for the user.

          false
          

          Sticky selections should be reused on subsequent requests for the same user, rather than re-allocating a new variant.

        • variantIndex: number

          Index of the selected variant within the experience configuration.

          Typically corresponds to the index of the selected PersonalizationConfig entry.

        • variants: Record<string, string>

          Mapping of baseline entry IDs to their selected variant entry IDs.

          The keys are component identifiers and the values are the identifiers of the selected variant for that component.

      Returns ResolvedData<S, undefined, L>

      ResolvedData containing the resolved entry and personalization metadata (if any).

      const { entry, personalization } = core.personalizeEntry(baselineEntry, data.personalizations)
      
    • Resolve a Contentful entry to the appropriate personalized variant (or return the baseline entry if no matching variant is selected).

      Type Parameters

      • S extends EntrySkeletonType

        Entry skeleton type.

      • M extends ChainModifiers = ChainModifiers

        Chain modifiers.

      • L extends string = string

        Locale code.

      Parameters

      • entry: Entry<S, M, L>

        The baseline entry to resolve.

      • Optionalpersonalizations: {
            experienceId: string;
            sticky?: boolean;
            variantIndex: number;
            variants: Record<string, string>;
        }[]

        Optional selection array for the current profile.

        • experienceId: string

          Identifier of the personalization or experiment experience.

        • Optionalsticky?: boolean

          Indicates whether this personalization selection is sticky for the user.

          false
          

          Sticky selections should be reused on subsequent requests for the same user, rather than re-allocating a new variant.

        • variantIndex: number

          Index of the selected variant within the experience configuration.

          Typically corresponds to the index of the selected PersonalizationConfig entry.

        • variants: Record<string, string>

          Mapping of baseline entry IDs to their selected variant entry IDs.

          The keys are component identifiers and the values are the identifiers of the selected variant for that component.

      Returns ResolvedData<S, M, L>

      ResolvedData containing the resolved entry and personalization metadata (if any).

      const { entry, personalization } = core.personalizeEntry(baselineEntry, data.personalizations)
      
    • Register a preview panel compatible object to receive direct signal access. This enables the preview panel to modify SDK state for testing and simulation.

      Parameters

      Returns void

      This method is intended for use by the Preview Panel component. Direct signal access allows immediate state updates without API calls.

      const previewBridge: PreviewPanelSignalObject = {}
      core.registerPreviewPanel(previewBridge)
    • Reset internal state. Consent and preview panel state are intentionally preserved.

      Returns void

      Resetting personalization also resets analytics dependencies as a consequence of the current shared-state design.

      core.reset()
      
    • Convenience wrapper for sending a screen event via personalization.

      Parameters

      • payload: {
            campaign?: {
                content?: string;
                medium?: string;
                name?: string;
                source?: string;
                term?: string;
            };
            locale?: string;
            location?: {
                city?: string;
                continent?: string;
                coordinates?: { latitude: number; longitude: number };
                country?: string;
                countryCode?: string;
                postalCode?: string;
                region?: string;
                regionCode?: string;
                timezone?: string;
            };
            name: string;
            page?: {
                path: string;
                query: Record<string, string>;
                referrer: string;
                search: string;
                title?: string;
                url: string;
                [key: string]: JSONType;
            };
            properties: Record<string, JSONType>;
            screen?: { name: string; [key: string]: JSONType };
            userAgent?: string;
        } & { profile?: { id: string; [key: string]: JSONType } }

        Screen view builder arguments.

      Returns Promise<OptimizationData | undefined>

      The evaluated OptimizationData for this screen view.

      const data = await core.screen({ name: 'HomeScreen' })
      
    • Convenience wrapper for sending a custom track event via personalization.

      Parameters

      • payload: {
            campaign?: {
                content?: string;
                medium?: string;
                name?: string;
                source?: string;
                term?: string;
            };
            event: string;
            locale?: string;
            location?: {
                city?: string;
                continent?: string;
                coordinates?: { latitude: number; longitude: number };
                country?: string;
                countryCode?: string;
                postalCode?: string;
                region?: string;
                regionCode?: string;
                timezone?: string;
            };
            page?: {
                path: string;
                query: Record<string, string>;
                referrer: string;
                search: string;
                title?: string;
                url: string;
                [key: string]: JSONType;
            };
            properties?: Record<string, JSONType>;
            screen?: { name: string; [key: string]: JSONType };
            userAgent?: string;
        } & { profile?: { id: string; [key: string]: JSONType } }

        Track builder arguments.

      Returns Promise<OptimizationData | undefined>

      The evaluated OptimizationData for this event.

      const data = await core.track({ event: 'button_click', properties: { label: 'Buy' } })
      
    • Track a component click via analytics.

      Parameters

      • payload: {
            campaign?: {
                content?: string;
                medium?: string;
                name?: string;
                source?: string;
                term?: string;
            };
            componentId: string;
            experienceId?: string;
            locale?: string;
            location?: {
                city?: string;
                continent?: string;
                coordinates?: { latitude: number; longitude: number };
                country?: string;
                countryCode?: string;
                postalCode?: string;
                region?: string;
                regionCode?: string;
                timezone?: string;
            };
            page?: {
                path: string;
                query: Record<string, string>;
                referrer: string;
                search: string;
                title?: string;
                url: string;
                [key: string]: JSONType;
            };
            screen?: { name: string; [key: string]: JSONType };
            userAgent?: string;
            variantIndex?: number;
        }

        Component click builder arguments.

      Returns Promise<void>

      A promise that resolves when processing completes.

      await core.trackComponentClick({ componentId: 'hero-banner' })
      
    • Track a component hover via analytics.

      Parameters

      • payload: {
            campaign?: {
                content?: string;
                medium?: string;
                name?: string;
                source?: string;
                term?: string;
            };
            componentHoverId: string;
            componentId: string;
            experienceId?: string;
            hoverDurationMs: number;
            locale?: string;
            location?: {
                city?: string;
                continent?: string;
                coordinates?: { latitude: number; longitude: number };
                country?: string;
                countryCode?: string;
                postalCode?: string;
                region?: string;
                regionCode?: string;
                timezone?: string;
            };
            page?: {
                path: string;
                query: Record<string, string>;
                referrer: string;
                search: string;
                title?: string;
                url: string;
                [key: string]: JSONType;
            };
            screen?: { name: string; [key: string]: JSONType };
            userAgent?: string;
            variantIndex?: number;
        }

        Component hover builder arguments.

      Returns Promise<void>

      A promise that resolves when processing completes.

      await core.trackComponentHover({ componentId: 'hero-banner' })
      
    • Track a component view in both personalization and analytics.

      Parameters

      • payload: {
            campaign?: {
                content?: string;
                medium?: string;
                name?: string;
                source?: string;
                term?: string;
            };
            componentId: string;
            componentViewId: string;
            experienceId?: string;
            locale?: string;
            location?: {
                city?: string;
                continent?: string;
                coordinates?: { latitude: number; longitude: number };
                country?: string;
                countryCode?: string;
                postalCode?: string;
                region?: string;
                regionCode?: string;
                timezone?: string;
            };
            page?: {
                path: string;
                query: Record<string, string>;
                referrer: string;
                search: string;
                title?: string;
                url: string;
                [key: string]: JSONType;
            };
            screen?: { name: string; [key: string]: JSONType };
            sticky?: boolean;
            userAgent?: string;
            variantIndex?: number;
            viewDurationMs: number;
        } & { profile?: { id: string; [key: string]: JSONType } }

        Component view builder arguments. When payload.sticky is true, the event will also be sent via personalization as a sticky component view.

      Returns Promise<OptimizationData | undefined>

      A promise that resolves when all delegated calls complete.

      The sticky behavior is delegated to personalization; analytics is always invoked regardless of sticky.

      await core.trackComponentView({ componentId: 'hero-banner', sticky: true })
      
    • Track a feature flag view via analytics.

      Parameters

      • payload: {
            campaign?: {
                content?: string;
                medium?: string;
                name?: string;
                source?: string;
                term?: string;
            };
            componentId: string;
            componentViewId: string;
            experienceId?: string;
            locale?: string;
            location?: {
                city?: string;
                continent?: string;
                coordinates?: { latitude: number; longitude: number };
                country?: string;
                countryCode?: string;
                postalCode?: string;
                region?: string;
                regionCode?: string;
                timezone?: string;
            };
            page?: {
                path: string;
                query: Record<string, string>;
                referrer: string;
                search: string;
                title?: string;
                url: string;
                [key: string]: JSONType;
            };
            screen?: { name: string; [key: string]: JSONType };
            sticky?: boolean;
            userAgent?: string;
            variantIndex?: number;
            viewDurationMs: number;
        }

        Component view builder arguments used to build the flag view event.

      Returns Promise<void>

      A promise that resolves when processing completes.

      await core.trackFlagView({ componentId: 'feature-flag-123' })