import { type PostHogDeliveryOptions } from './posthog-delivery.js'; import { type FunnelStepExitReason, type FunnelStepType } from '@funnelsgrove/runtime'; export type PublicSdkTrackEventInput = { eventType: string; userId?: string; environment?: PublicSdkAnalyticsEnvironment; eventId?: string; occurredAt?: string; stepId?: string; stepName?: string; stepType?: string; startedAt?: string; endedAt?: string; durationMs?: number; exitReason?: FunnelStepExitReason; stepContractVersion?: number; selected?: Record; payload?: Record; context?: Record; metadata?: Record; featureFlags?: Record; }; export type PublicSdkStepStartInput = { userId?: string; environment?: PublicSdkAnalyticsEnvironment; stepId: string; stepName: string; stepType: FunnelStepType; stepContractVersion: number; startedAt: string; metadata?: Record; featureFlags?: Record; }; export type PublicSdkStepEndInput = { userId?: string; environment?: PublicSdkAnalyticsEnvironment; stepId: string; stepName: string; stepType: FunnelStepType; stepContractVersion: number; startedAt: string; endedAt: string; selected?: Record; metadata?: Record; featureFlags?: Record; }; export type PublicSdkStepExitInput = { userId?: string; environment?: PublicSdkAnalyticsEnvironment; eventId?: string; stepId: string; stepName: string; stepType: FunnelStepType; startedAt: string; endedAt: string; exitReason: FunnelStepExitReason; stepContractVersion: number; metadata?: Record; featureFlags?: Record; }; export type PublicSdkStepEngagedInput = { userId?: string; environment?: PublicSdkAnalyticsEnvironment; stepId: string; stepName: string; stepType: FunnelStepType; stepContractVersion: number; startedAt: string; engagedAt: string; durationMs: number; engagementThresholdMs: number; metadata?: Record; featureFlags?: Record; }; export type PublicSdkConversionCallbackInput = { userId?: string; environment?: PublicSdkAnalyticsEnvironment; eventId?: string; occurredAt?: string; stepId?: string; stepName?: string; stepType?: string; stepContractVersion?: number; metadata?: Record; featureFlags?: Record; }; export type PublicSdkFunnelConversionCallbackInput = PublicSdkConversionCallbackInput & { stepContractVersion: number; }; export type PublicSdkStepConversionCallbackInput = Omit & { stepContractVersion: number; stepId: string; stepName: string; stepType: FunnelStepType; }; export type PublicSdkEmailCapturedBrowserInput = Omit & { eventId: string; }; export type PublicSdkIdentifyInput = { user_id?: string; email?: string; fullName?: string; metadata?: Record; }; export type PublicAnalyticsSdkOptions = PostHogDeliveryOptions; export type PublicSdkAnalyticsEnvironment = 'test' | 'live'; type SecureBootstrapCrypto = Pick & { randomUUID?: () => `${string}-${string}-${string}-${string}-${string}` | string; }; export declare const createBootstrapIdempotencyKey: (secureCrypto?: SecureBootstrapCrypto) => string; export declare class PublicAnalyticsSdkService { private readonly delivery; private readonly rudderstack; private userId; constructor(options?: Partial); getCurrentUserId(): string; identify(input?: PublicSdkIdentifyInput): Promise; fetchCurrentUserState(input?: { user_id?: string; }): Promise<{ user: Record | null; events: unknown[]; subscriptions: unknown[]; payments: unknown[]; } | null>; track(event: PublicSdkTrackEventInput): string | null; trackEmailCapturedBrowserDestinations(input: PublicSdkEmailCapturedBrowserInput): void; private trackBrowserDestinations; private trackTrusted; private trackContractCallback; trackStepStarted(input: PublicSdkStepStartInput): string | null; trackStepCompleted(input: PublicSdkStepEndInput): string | null; trackStepExited(input: PublicSdkStepExitInput): string | null; trackStepEngaged(input: PublicSdkStepEngagedInput): string | null; trackFunnelStarted(input: PublicSdkFunnelConversionCallbackInput): string | null; trackFirstStepClicked(input: PublicSdkStepConversionCallbackInput): string | null; trackFirstStepViewed(input: PublicSdkStepConversionCallbackInput): string | null; /** @deprecated Legacy contract-v1 compatibility only; v2 funnels use submitEmailCapture. */ trackLead(input: PublicSdkConversionCallbackInput): string | null; trackFunnelCompleted(input: PublicSdkStepConversionCallbackInput): string | null; trackCheckoutStarted(input: PublicSdkStepConversionCallbackInput): string | null; trackPaymentInfoSubmitted(input: PublicSdkStepConversionCallbackInput): string | null; trackCheckoutCompleted(input: PublicSdkStepConversionCallbackInput): string | null; trackPaymentCheckoutSucceeded(input: PublicSdkStepConversionCallbackInput): string | null; trackPaymentCheckoutReturned(input: PublicSdkStepConversionCallbackInput): string | null; flush(): Promise; private ensureUserId; private resolveBootstrapUserId; private toPostHogEvent; } export declare const publicAnalyticsSdk: PublicAnalyticsSdkService; export {};