export type Primitive = string | number | boolean;
export interface RoktJSON {
    environment: 'production';
    device_info: {
        http_header_user_agent?: string;
        ios_advertising_id?: string;
        android_advertising_id?: string;
        ios_idfv?: string;
        android_uuid?: string;
    };
    user_attributes: {
        firstname?: string;
        lastname?: string;
        mobile?: string;
        billingzipcode?: string;
        firstnamesha256?: string;
        lastnamesha256?: string;
        mobilesha256?: string;
        billingzipsha256?: string;
        dob?: string;
        gender?: 'm' | 'f';
        [key: string]: unknown;
    };
    user_identities: {
        email?: string;
        other?: string;
        customerid?: string;
        other2?: string;
    };
    integration_attributes?: {
        "1277": {
            passbackconversiontrackingid: string;
        };
    };
    events?: (AudienceJSON | EventJSON)[];
    ip?: string;
}
interface BaseEvent {
    event_type: "custom_event";
    data: {
        source_message_id: string;
        timestamp_unixtime_ms: number;
    };
}
export interface AudienceJSON extends BaseEvent {
    data: BaseEvent["data"] & {
        event_name: "audiencemembershipupdate";
        custom_event_type: "other";
        custom_attributes: {
            audience_name: string;
            status: 'add' | 'drop';
        };
    };
}
export interface EventJSON extends BaseEvent {
    data: BaseEvent["data"] & {
        event_name: "conversion";
        custom_event_type: "transaction";
        custom_attributes: {
            conversiontype: string;
            confirmationref?: string;
            amount?: number;
            currency?: string;
            [key: string]: unknown;
        };
    };
}
export {};
