interface RybbitConfig { analyticsHost: string; siteId: string; debounceDuration?: number; skipPatterns?: string[]; maskPatterns?: string[]; debug?: boolean; replayPrivacyConfig?: { maskAllInputs?: boolean; maskTextSelectors?: string[]; blockClass?: string; blockSelector?: string; ignoreClass?: string; ignoreSelector?: string; maskTextClass?: string; collectFonts?: boolean; slimDOMOptions?: Record | boolean; batchSize?: number; batchInterval?: number; }; } type PropertyValue = string | number | boolean; interface TrackProperties { [key: string]: PropertyValue | PropertyValue[]; } type PageChangeCallback = (pathname: string, previousPathname: string) => void; interface RybbitAPI { init: (config: RybbitConfig) => Promise; pageview: (path?: string) => void; event: (name: string, properties?: TrackProperties) => void; trackOutbound: (url: string, text?: string, target?: string) => void; identify: (userId: string, traits?: Record) => void; setTraits: (traits: Record) => void; clearUserId: () => void; getUserId: () => string | null; cleanup: () => void; error: (error: Error | ErrorEvent, context?: TrackProperties) => void; onPageChange: (callback: PageChangeCallback) => () => void; startSessionReplay: () => void; stopSessionReplay: () => void; isSessionReplayActive: () => boolean; } declare const rybbit: RybbitAPI; export { rybbit as default };