import type { Prisma } from '../prisma-client';
import type { z } from "zod";
import { bookingResponsesDbSchema } from '../features/bookings/lib/getBookingResponsesSchema';
import type { PrismaClient } from '../prisma';
type BookingSelect = {
    description: true;
    customInputs: true;
    attendees: {
        select: {
            email: true;
            name: true;
        };
    };
    location: true;
};
declare function getBooking(prisma: PrismaClient, uid: string): Promise<(Omit<{
    id: number;
    location: string | null;
    description: string | null;
    user: {
        id: number;
    } | null;
    customInputs: Prisma.JsonValue;
    smsReminderNumber: string | null;
    uid: string;
    responses: Prisma.JsonValue;
    attendees: {
        name: string;
        email: string;
        bookingSeat: {
            data: Prisma.JsonValue;
            metadata: Prisma.JsonValue;
            id: number;
            bookingId: number;
            referenceUid: string;
            attendeeId: number;
        } | null;
    }[];
    startTime: Date;
}, "responses"> & {
    responses: z.infer<typeof bookingResponsesDbSchema>;
}) | null>;
export type GetBookingType = Prisma.PromiseReturnType<typeof getBooking>;
export declare const getBookingWithResponses: <T extends Prisma.BookingGetPayload<{
    select: BookingSelect & {
        responses: true;
    };
}>>(booking: T) => Omit<T, "responses"> & {
    responses: z.infer<typeof bookingResponsesDbSchema>;
};
export default getBooking;
//# sourceMappingURL=getBooking.d.ts.map