import { TrackerSdkOptions, TrackProperties, TrackerSdk } from '@brainfish-ai/tracker-sdk'; export type * from '@brainfish-ai/tracker-sdk'; export type RecordingOptions = { blocklist?: string[]; sampleRate?: number; _allowLocalhostRecording?: boolean; }; export type TrackerOptions = TrackerSdkOptions & { trackOutgoingLinks?: boolean; trackScreenViews?: boolean; trackAttributes?: boolean; trackHashChanges?: boolean; enableRecording?: boolean; recordingOptions?: RecordingOptions; /** @deprecated Use recordingOptions.blocklist instead */ recordingBlocklist?: string[]; /** @deprecated Use recordingOptions._allowLocalhostRecording instead */ _allowLocalhostRecording?: boolean; }; export declare const VERSION: string; export declare class Tracker extends TrackerSdk { options: TrackerOptions; private lastPath; private debounceTimer; private readonly agent; private readonly sessionManager; private readonly recordingBlocklist; private isRecordingActive; private isRecordingInitializing; private onFirstScreenViewTracked; private outgoingLinksAttached; private attributesAttached; constructor(options: TrackerOptions); private debounce; private isServer; trackOutgoingLinks(): void; trackScreenViews(): void; trackAttributes(): void; private startRecording; screenView(properties?: TrackProperties): Promise; screenView(path: string, properties?: TrackProperties): Promise; /** * Handles recording events to the server and manages session state transitions. * @param events Array of events to be recorded * @returns Promise that resolves when events are recorded and session is managed */ private recordEventsToServer; private initializeRecordingWithSessionId; private sendScreenViewEvent; private deferRecordingUntilFirstScreenView; /** * Disables privacy-sensitive tracking features and stops active recording. */ disableTracking(): void; /** * Re-enables privacy-sensitive tracking features (outgoing links, attributes, recording). * Takes effect immediately; no page refresh required. */ enableTracking(): void; }