import { UserTraits } from './user';
export declare type SegmentEventType = 'page' | 'track' | 'identify';
declare type SegmentEventDefinition<T extends SegmentEventType, EventProperties extends Record<string, unknown>> = {
    type: T;
    anonymousId: string;
    userId: string;
    messageId: string;
    integrations?: Record<string, unknown>;
    context?: Record<string, unknown>;
} & EventProperties;
export declare type IdentifyEvent = SegmentEventDefinition<'identify', {
    traits: UserTraits;
}>;
export declare type TrackEvent = SegmentEventDefinition<'track', {
    event: string;
    properties?: Record<string, unknown>;
}>;
export declare type PageEvent = SegmentEventDefinition<'page', {
    properties: {
        path: string;
        referrer?: string;
        search?: string;
        title: string;
        url: string;
    };
}>;
export declare type SegmentEvent = IdentifyEvent | TrackEvent | PageEvent;
export {};
