import type { z } from "zod";
import type { PrismaClient } from '../../../kysely/types.ts';
import { bookingCancelInput } from '../../../prisma/zod-utils';
import type { CancelRegularBookingData, CancelBookingMeta } from "./dto/BookingCancel";
import { getBookingToDelete } from "./getBookingToDelete";
import type { IBookingCancelService } from "./interfaces/IBookingCancelService";
type PlatformParams = {
    platformClientId?: string;
    platformRescheduleUrl?: string;
    platformCancelUrl?: string;
    platformBookingUrl?: string;
    arePlatformEmailsEnabled?: boolean;
};
export type BookingToDelete = Awaited<ReturnType<typeof getBookingToDelete>>;
export type CancelBookingInput = {
    userId?: number;
    userUuid?: string;
    bookingData: z.infer<typeof bookingCancelInput>;
} & PlatformParams;
declare function handler(input: CancelBookingInput): Promise<{
    success: true;
    onlyRemovedAttendee: true;
    bookingId: number;
    bookingUid: string;
    message: string;
} | {
    success: true;
    message: string;
    onlyRemovedAttendee: false;
    bookingId: number;
    bookingUid: string;
}>;
type BookingCancelServiceDependencies = {
    prismaClient: PrismaClient;
};
/**
 * Takes care of cancelling bookings. This includes regular bookings, recurring bookings, seated bookings, etc.
 * Handles both individual booking cancellations and bulk cancellations for recurring events.
 */
export declare class BookingCancelService implements IBookingCancelService {
    private readonly deps;
    constructor(deps: BookingCancelServiceDependencies);
    cancelBooking(input: {
        bookingData: CancelRegularBookingData;
        bookingMeta?: CancelBookingMeta;
    }): Promise<{
        success: true;
        onlyRemovedAttendee: true;
        bookingId: number;
        bookingUid: string;
        message: string;
    } | {
        success: true;
        message: string;
        onlyRemovedAttendee: false;
        bookingId: number;
        bookingUid: string;
    }>;
}
export default handler;
//# sourceMappingURL=handleCancelBooking.d.ts.map