import type { AnalyticsConfig } from "../types"; export type StudioAnalyticsEventName = "page_view" | "property_view" | "floorplan_view" | "floorplan_cta_click" | "unit_view" | "form_submit" | "tour_booking" | "apply_click" | "phone_click" | "email_click" | "chat_start" | "property_map_explorer_view" | "property_map_search" | "property_map_filter_change" | "property_map_place_select" | "property_map_zero_results" | "property_map_reset" | "property_map_view_change" | "property_map_maps_click"; type PropertyMapExplorerEventName = Extract; type AnalyticsParameter = string | number | boolean | undefined; export type StudioAnalyticsParameters = Record; interface LegacyAnalyticsEvent { action: string; category?: string; label?: string; value?: number; } export interface StudioAnalyticsBrowser { gtag?: (...args: any[]) => void; dataLayer?: Array>; } /** * Dispatch one event to the configured destination using the same payload keys. * Explicit mode is exclusive; missing mode retains the legacy dual-ID behavior. */ export declare function dispatchStudioAnalyticsEvent(analytics: AnalyticsConfig | undefined, event: string, parameters?: StudioAnalyticsParameters, target?: StudioAnalyticsBrowser | undefined): void; /** Classify a contact target without returning or recording its PII-bearing value. */ export declare function contactEventForTarget(target: string | undefined): "phone" | "email" | undefined; export declare function useAnalytics(): { trackEvent: ({ action, category, label, value }: LegacyAnalyticsEvent) => void; trackPageView: (path: string, title?: string) => void; trackPropertyView: (propertyId?: string) => void; trackFloorplanView: (propertyId: string | undefined, floorplanId: string) => void; trackFloorplanCtaClick: (propertyId: string | undefined, floorplanId: string, ctaAction?: "navigate" | "scroll" | "openModal" | "externalLink") => void; trackUnitView: (propertyId: string | undefined, unitId: string | undefined, floorplanId?: string) => void; trackTourBooking: (propertyId: string | undefined, tourType?: string) => void; trackApplyClick: (propertyId: string | undefined, unitId?: string) => void; trackFormSubmission: (formType: string, propertyId?: string) => void; trackContactClick: (kind: "phone" | "email", propertyId?: string) => void; trackChatStart: (propertyId?: string) => void; trackPropertyMapExplorer: (event: PropertyMapExplorerEventName, parameters?: StudioAnalyticsParameters) => void; }; export {}; //# sourceMappingURL=useAnalytics.d.ts.map