import { Destination as Destination$1, Mapping as Mapping$1 } from '@walkeros/core'; import { DestinationWeb } from '@walkeros/web-core'; /** * Settings (destination-level). * * orgId is the FullStory organization ID (e.g. "o-XXXXXX-na1"). * All SnippetOptions from @fullstory/browser are available as passthrough. */ interface Settings { orgId: string; host?: string; script?: string; cookieDomain?: string; debug?: boolean; devMode?: boolean; startCaptureManually?: boolean; namespace?: string; recordCrossDomainIFrames?: boolean; identify?: Mapping$1.Value; consent?: Record; } type InitSettings = Partial; /** * Mapping (rule.settings) -- per-event overrides. * * identify -- mapping value resolving to { uid, properties? } for FullStory('setIdentity', ...) * set -- mapping value resolving to properties for FullStory('setProperties', ...) * setType -- property scope: 'user' (default) or 'page' */ interface Mapping { identify?: Mapping$1.Value; set?: Mapping$1.Value; setType?: 'user' | 'page'; } /** * FullStory SDK surface -- the subset of @fullstory/browser methods this * destination actually calls. Tests can mock each method individually. * * Uses V2 API only: FullStory('operationName', options). */ interface FullStorySDK { init: (options: { orgId: string; host?: string; script?: string; cookieDomain?: string; debug?: boolean; devMode?: boolean; startCaptureManually?: boolean; namespace?: string; recordCrossDomainIFrames?: boolean; }) => void; trackEvent: (options: { name: string; properties?: Record; }) => void; setIdentity: (options: { uid?: string | false; anonymous?: boolean; consent?: boolean; properties?: Record; }) => void; setProperties: (options: { type: 'user' | 'page'; properties: Record; }) => void; shutdown: () => void; start: () => void; } /** * Env -- optional override for the vendor SDK. Production leaves this * undefined and the destination falls back to the real @fullstory/browser. * Tests provide a mock via env.fullstory = { ... }. */ interface Env extends DestinationWeb.Env { fullstory?: FullStorySDK; } type Types = Destination$1.Types; type Destination = DestinationWeb.Destination; type Config = DestinationWeb.Config; type Rule = Mapping$1.Rule; type Rules = Mapping$1.Rules; type index_Config = Config; type index_Destination = Destination; type index_Env = Env; type index_FullStorySDK = FullStorySDK; type index_InitSettings = InitSettings; type index_Mapping = Mapping; type index_Rule = Rule; type index_Rules = Rules; type index_Settings = Settings; type index_Types = Types; declare namespace index { export type { index_Config as Config, index_Destination as Destination, index_Env as Env, index_FullStorySDK as FullStorySDK, index_InitSettings as InitSettings, index_Mapping as Mapping, index_Rule as Rule, index_Rules as Rules, index_Settings as Settings, index_Types as Types }; } declare const destinationFullStory: Destination; export { index as DestinationFullStory, destinationFullStory as default, destinationFullStory };