import { Context as SegmentContext } from "@segment/analytics-next"; export declare enum NameTypes { FirstName = "firstName", LastName = "lastName", FullName = "fullName" } export declare enum Components { ABSENT_NAME = "absent_name", NAMELINE = "nameline", FULLNAMELINE = "fullname_line" } export interface Name { value: string; type: NameTypes; } export declare enum GpdbUserSigTypes { Email = "email", HashedEmail = "hashed_email" } export interface GpdbUser { email: string; fullName: string; firstName?: string; lastName?: string; signature: string; signatureType: GpdbUserSigTypes | "email" | "hashed_email"; } export declare type ApplicationName = string; export declare type SegmentWriteKey = string; export declare type Pronunciation = object; export declare type Block = string; export declare type Component = string; export declare type Origin = string; export declare type Page = string; export declare type User = object; export declare type ExternalContext = object; export declare type AnalyticsEvent = string; export interface AnalyticsSettings { writeKey: SegmentWriteKey; applicationName: ApplicationName; } export interface AnalyticsSendProperties { page?: Page; name?: Name; me?: User; member?: User; memberGPDB?: GpdbUser; block?: Block; component?: Component; pronunciation?: Pronunciation; origin?: Origin; externalContext?: ExternalContext; options?: { val?: any; prevVal?: any; key?: string; names?: any; sampleRate?: number; deviceLabel?: string | null; }; } export interface SegmentProperties extends AnalyticsSendProperties { applicationName: ApplicationName; } export interface AnalyticsProviderValue extends AnalyticsSendProperties { meGpdb?: GpdbUser; } export interface StartPageProperties { category?: string; name?: string; properties?: Record; options?: Record; } export declare type Context = SegmentContext; export interface UseAnalyticsReturn { sendAnalyticsEvent: (event: AnalyticsEvent, properties?: AnalyticsSendProperties) => Promise; analyticsContext: AnalyticsProviderValue; }