import type { CreditCheckFn } from '../../../billing/credit-service';
import type { Workflow } from '../types';
import { SchedulingType } from '../../../../../prisma/enums';
import type { CalendarEvent } from "@calcom/types/Calendar";
import type { FormSubmissionData } from "../types";
import type { BookingInfo } from "../types";
export type WorkflowContextData = {
    evt: BookingInfo;
    formData?: never;
} | {
    evt?: never;
    formData: FormSubmissionData;
};
export type ExtendedCalendarEvent = Omit<CalendarEvent, "bookerUrl"> & {
    metadata?: {
        videoCallUrl: string | undefined;
    };
    eventType: {
        slug: string;
        schedulingType?: SchedulingType | null;
        hosts?: {
            user: {
                email: string;
                destinationCalendar?: {
                    primaryEmail: string | null;
                } | null;
            };
        }[];
    };
    rescheduleReason?: string | null;
    cancellationReason?: string | null;
    bookerUrl: string;
};
type ProcessWorkflowStepParams = ({
    calendarEvent: ExtendedCalendarEvent;
    formData?: never;
} | {
    calendarEvent?: never;
    formData: FormSubmissionData;
}) & {
    smsReminderNumber: string | null;
    emailAttendeeSendToOverride?: string;
    hideBranding?: boolean;
    seatReferenceUid?: string;
};
export type ScheduleWorkflowRemindersArgs = ProcessWorkflowStepParams & {
    workflows: Workflow[];
    isDryRun?: boolean;
    creditCheckFn: CreditCheckFn;
};
export interface SendCancelledRemindersArgs {
    workflows: Workflow[];
    smsReminderNumber: string | null;
    evt: ExtendedCalendarEvent;
    hideBranding?: boolean;
    creditCheckFn: CreditCheckFn;
}
export declare const scheduleWorkflowReminders: (args: ScheduleWorkflowRemindersArgs) => Promise<void>;
export declare const sendCancelledReminders: (args: SendCancelledRemindersArgs) => Promise<void>;
export declare const cancelScheduledMessagesAndScheduleEmails: (args_0: {
    teamId?: number | null;
    userIdsWithNoCredits: number[];
}) => Promise<void>;
export {};
//# sourceMappingURL=reminderScheduler.d.ts.map