import { CommunicationTypeEnum } from 'src/common/enum/communication-type.enum';
import { SessionCommunicationPurposeEnum } from 'src/common/enum/session-communication-purpose.enum';
import { SessionCommunicationStatusEnum } from 'src/common/enum/session-communication-status.enum';
import { SessionOccurrence } from './session-communication.constants';
export interface SessionCommunicationSummaryRow {
    registrationId: number;
    purpose: SessionCommunicationPurposeEnum;
    occurrence: SessionOccurrence | null;
    channel: CommunicationTypeEnum;
    count: number;
    lastSentAt: Date | string;
}
export interface SessionCommunicationStatusSummary {
    status: SessionCommunicationStatusEnum;
    requested: number;
    emailSent: number;
    whatsappSent: number;
    skipped: number;
    lastTriggeredAt: Date;
}
export interface SkippedRecipient {
    registrationId: number;
    channel: CommunicationTypeEnum;
    reason: string;
}
export interface SendResult {
    requested: number;
    enqueued: {
        email: number;
        whatsapp: number;
    };
    skipped: SkippedRecipient[];
    accepted?: boolean;
}
