import type { ActionRunContext } from "../action.js"; import { type QuestionIntakeExperimentAssignment } from "../observability/question-intake-experiment.js"; import { type TrackingEventOrigin } from "../observability/tracing.js"; import type { TrackingProvider } from "./types.js"; export { isQaTestEmail } from "../shared/qa-test-email.js"; export declare function isTrackingSuppressed(userId: string | undefined, properties?: Record): boolean; export declare function registerTrackingProvider(provider: TrackingProvider): void; export declare function unregisterTrackingProvider(name: string): boolean; export declare function listTrackingProviders(): string[]; export interface TrackingMeta { userId?: string; authUserId?: string; anonymousId?: string; /** Null pins session absence and disables request-context fallback. */ sessionId?: string | null; occurredAt?: number; telemetryOrigin?: TrackingEventOrigin; } export type TrackingSource = TrackingMeta | (ActionRunContext & Pick); export declare function track(name: string, properties?: Record, source?: TrackingSource): void; export declare function trackQuestionIntakeExposure(assignment: QuestionIntakeExperimentAssignment, context: { appId: string; threadId?: string; turnId: string; userId?: string; }): void; export declare function identify(userId: string, traits?: Record): void; export declare function flushTracking(): Promise;