export declare const UserServiceEventTypes: {
    readonly CUSTOMER_REGISTERED: "customer.registered";
    readonly BUSINESS_REGISTERED: "business.registered";
    readonly CUSTOMER_LOGGED_IN: "customer.logged_in";
    readonly BUSINESS_LOGGED_IN: "business.logged_in";
    readonly EMAIL_VERIFIED: "email.verified";
    readonly PHONE_VERIFIED: "phone.verified";
    readonly PROFILE_UPDATED: "profile.updated";
    readonly PASSWORD_CHANGED: "password.changed";
    readonly BUSINESS_VERIFICATION_SUBMITTED: "business.verification.submitted";
    readonly BUSINESS_VERIFICATION_APPROVED: "business.verification.approved";
    readonly BUSINESS_VERIFICATION_REJECTED: "business.verification.rejected";
    readonly AGENT_INVITED: "agent.invited";
    readonly AGENT_ACCEPTED: "agent.accepted";
    readonly AGENT_REJECTED: "agent.rejected";
};
export interface BusinessRegisteredEvent {
    eventId: string;
    timestamp: string;
    eventType: typeof UserServiceEventTypes.BUSINESS_REGISTERED;
    data: {
        businessId: string;
        businessName: string;
        businessType: 'hospital' | 'hmo' | 'diagnostic_center' | 'ambulance_provider';
        email: string;
        contactName?: string;
        phoneNumber?: string;
        ownerId: string;
        ownerEmail: string;
        ownerName: string;
        registeredAt: string;
        verificationStatus: 'pending' | 'verified' | 'rejected';
        onboardingStatus: 'not_started' | 'in_progress' | 'completed';
    };
    metadata: {
        correlationId: string;
        sourceService: 'user-service';
        version: '1.0';
        requiresNotification: boolean;
        notificationTemplates?: string[];
    };
}
export interface CustomerRegisteredEvent {
    eventId: string;
    timestamp: string;
    eventType: typeof UserServiceEventTypes.CUSTOMER_REGISTERED;
    data: {
        customerId: string;
        email: string;
        firstName: string;
        lastName: string;
        phoneNumber?: string;
        dateOfBirth?: string;
        registeredAt: string;
        verificationStatus: 'pending' | 'verified';
        accountStatus: 'active' | 'inactive' | 'suspended';
    };
    metadata: {
        correlationId: string;
        sourceService: 'user-service';
        version: '1.0';
        requiresNotification: boolean;
        notificationTemplates?: string[];
    };
}
export interface BusinessVerificationDecisionEvent {
    eventId: string;
    timestamp: string;
    eventType: typeof UserServiceEventTypes.BUSINESS_VERIFICATION_APPROVED | typeof UserServiceEventTypes.BUSINESS_VERIFICATION_REJECTED;
    data: {
        businessId: string;
        businessName: string;
        businessType: string;
        email: string;
        decision: 'approved' | 'rejected';
        decidedBy: string;
        decidedAt: string;
        reason?: string;
        notes?: string;
        hrmOnboardingRequired?: boolean;
        nextSteps?: string[];
    };
    metadata: {
        correlationId: string;
        sourceService: 'user-service';
        version: '1.0';
        requiresNotification: boolean;
        notificationTemplates?: string[];
    };
}
export type UserServiceEvent = BusinessRegisteredEvent | CustomerRegisteredEvent | BusinessVerificationDecisionEvent;
export type UserServiceEventType = typeof UserServiceEventTypes[keyof typeof UserServiceEventTypes];
//# sourceMappingURL=user-service.d.ts.map