import type { BookingResponse } from '../../../../features/bookings/types';
import type { ApiResponse, ApiErrorResponse, ApiSuccessResponse } from '../../../types/index.ts';
import type { BookingCreateBody } from '../../../../prisma/zod/custom/booking';
export type UseCreateBookingInput = BookingCreateBody & {
    locationUrl?: string;
};
interface IUseCreateBooking {
    onSuccess?: (res: ApiSuccessResponse<BookingResponse>) => void;
    onError?: (err: ApiErrorResponse | Error) => void;
}
export declare const useCreateBooking: ({ onSuccess, onError }?: IUseCreateBooking) => import("@tanstack/react-query").UseMutationResult<ApiResponse<{
    luckyUsers?: number[] | undefined;
    troubleshooterData?: {
        organizerUser: {
            id: number;
        } | null;
        eventType: {
            id: number;
            slug: string;
        };
        allHostUsers: number[];
        luckyUsers: number[];
        luckyUserPool: number[];
        fixedUsers: number[];
        luckyUsersFromFirstBooking: number[];
        usedContactOwnerEmail: string | null;
        askedContactOwnerEmail: string | null;
        isManagedEventType: boolean;
    } | undefined;
    user: {
        email: null;
        name?: string | null | undefined;
        username?: string | null | undefined;
        timeZone?: string | undefined;
    };
    paymentRequired: boolean;
    isDryRun: boolean;
    payment?: {
        success: boolean;
        data: import('../../../../prisma-client').Prisma.JsonValue;
        id: number;
        refunded: boolean;
        currency: string;
        uid: string;
        paymentOption: import('../../../../prisma-client').$Enums.PaymentOption | null;
        bookingId: number;
        externalId: string;
        appId: string | null;
        amount: number;
        fee: number;
    }[] | undefined;
    attendees?: {
        name: string;
        id: number;
        email: string;
        locale: string | null;
        timeZone: string;
        bookingId: number | null;
        phoneNumber: string | null;
        noShow: boolean | null;
    }[] | undefined;
    references?: {
        id: number;
        type: string;
        uid: string;
        credentialId: number | null;
        deleted: boolean | null;
        bookingId: number | null;
        thirdPartyRecurringEventId: string | null;
        delegationCredentialId: string | null;
        domainWideDelegationCredentialId: string | null;
        meetingId: string | null;
        meetingPassword: string | null;
        meetingUrl: string | null;
        externalCalendarId: string | null;
    }[] | undefined;
    id?: number | undefined;
    title?: string | undefined;
    metadata?: import('../../../../prisma-client').Prisma.JsonValue | undefined;
    status?: import('../../../../prisma-client').$Enums.BookingStatus | undefined;
    description?: string | null | undefined;
    paid?: boolean | undefined;
    location?: string | null | undefined;
    rescheduled?: boolean | null | undefined;
    rating?: number | null | undefined;
    uid?: string | undefined;
    userId?: number | null | undefined;
    eventTypeId?: number | null | undefined;
    customInputs?: import('../../../../prisma-client').Prisma.JsonValue | undefined;
    smsReminderNumber?: string | null | undefined;
    recurringEventId?: string | null | undefined;
    cancellationReason?: string | null | undefined;
    cancelledBy?: string | null | undefined;
    iCalUID?: string | null | undefined;
    responses?: import('../../../../prisma-client').Prisma.JsonValue | undefined;
    startTime?: Date | undefined;
    endTime?: Date | undefined;
    idempotencyKey?: string | null | undefined;
    userPrimaryEmail?: string | null | undefined;
    createdAt?: Date | undefined;
    updatedAt?: Date | null | undefined;
    destinationCalendarId?: number | null | undefined;
    rejectionReason?: string | null | undefined;
    reassignReason?: string | null | undefined;
    reassignById?: number | null | undefined;
    dynamicEventSlugRef?: string | null | undefined;
    dynamicGroupSlugRef?: string | null | undefined;
    fromReschedule?: string | null | undefined;
    scheduledJobs?: string[] | undefined;
    isRecorded?: boolean | undefined;
    iCalSequence?: number | undefined;
    ratingFeedback?: string | null | undefined;
    noShowHost?: boolean | null | undefined;
    oneTimePassword?: string | null | undefined;
    rescheduledBy?: string | null | undefined;
    creationSource?: import('../../../../prisma-client').$Enums.CreationSource | null | undefined;
    appsStatus?: import("@calcom/types/Calendar").AppsStatus[];
    seatReferenceUid?: string;
    paymentUid?: string;
    message?: string;
    paymentId?: number;
} | {
    troubleshooterData?: {
        organizerUser: {
            id: number;
        } | null;
        eventType: {
            id: number;
            slug: string;
        };
        allHostUsers: number[];
        luckyUsers: number[];
        luckyUserPool: number[];
        fixedUsers: number[];
        luckyUsersFromFirstBooking: number[];
        usedContactOwnerEmail: string | null;
        askedContactOwnerEmail: string | null;
        isManagedEventType: boolean;
    } | undefined;
    message: string;
    paymentRequired: boolean;
    paymentUid: string | undefined;
    paymentId: number | undefined;
    isDryRun: boolean;
    luckyUsers?: number[] | undefined;
    user: {
        email: null;
        name: string | null;
        username: string | null;
        timeZone: string;
    };
    videoCallUrl: any;
    seatReferenceUid: string | undefined;
    payment: {
        success: boolean;
        data: import('../../../../prisma-client').Prisma.JsonValue;
        id: number;
        refunded: boolean;
        currency: string;
        uid: string;
        paymentOption: import('../../../../prisma-client').$Enums.PaymentOption | null;
        bookingId: number;
        externalId: string;
        appId: string | null;
        amount: number;
        fee: number;
    }[];
    attendees: {
        name: string;
        id: number;
        email: string;
        locale: string | null;
        timeZone: string;
        bookingId: number | null;
        phoneNumber: string | null;
        noShow: boolean | null;
    }[];
    references: {
        id: number;
        type: string;
        uid: string;
        credentialId: number | null;
        deleted: boolean | null;
        bookingId: number | null;
        thirdPartyRecurringEventId: string | null;
        delegationCredentialId: string | null;
        domainWideDelegationCredentialId: string | null;
        meetingId: string | null;
        meetingPassword: string | null;
        meetingUrl: string | null;
        externalCalendarId: string | null;
    }[];
    id: number;
    title: string;
    metadata: import('../../../../prisma-client').Prisma.JsonValue;
    status: import('../../../../prisma-client').$Enums.BookingStatus;
    description: string | null;
    paid: boolean;
    location: string | null;
    rescheduled: boolean | null;
    rating: number | null;
    uid: string;
    userId: number | null;
    eventTypeId: number | null;
    customInputs: import('../../../../prisma-client').Prisma.JsonValue;
    smsReminderNumber: string | null;
    recurringEventId: string | null;
    cancellationReason: string | null;
    cancelledBy: string | null;
    iCalUID: string | null;
    responses: import('../../../../prisma-client').Prisma.JsonValue;
    startTime: Date;
    endTime: Date;
    idempotencyKey: string | null;
    userPrimaryEmail: string | null;
    createdAt: Date;
    updatedAt: Date | null;
    destinationCalendarId: number | null;
    rejectionReason: string | null;
    reassignReason: string | null;
    reassignById: number | null;
    dynamicEventSlugRef: string | null;
    dynamicGroupSlugRef: string | null;
    fromReschedule: string | null;
    scheduledJobs: string[];
    isRecorded: boolean;
    iCalSequence: number;
    ratingFeedback: string | null;
    noShowHost: boolean | null;
    oneTimePassword: string | null;
    rescheduledBy: string | null;
    creationSource: import('../../../../prisma-client').$Enums.CreationSource | null;
    appsStatus?: import("@calcom/types/Calendar").AppsStatus[];
} | {
    references: import("@calcom/types/EventManager").PartialReference[];
    seatReferenceUid: string | undefined;
    videoCallUrl: any;
    troubleshooterData?: {
        organizerUser: {
            id: number;
        } | null;
        eventType: {
            id: number;
            slug: string;
        };
        allHostUsers: number[];
        luckyUsers: number[];
        luckyUserPool: number[];
        fixedUsers: number[];
        luckyUsersFromFirstBooking: number[];
        usedContactOwnerEmail: string | null;
        askedContactOwnerEmail: string | null;
        isManagedEventType: boolean;
    } | undefined;
    isDryRun: boolean;
    luckyUsers?: number[] | undefined;
    user: {
        email: null;
        name?: string | null | undefined;
        username?: string | null | undefined;
        timeZone?: string | undefined;
    };
    paymentRequired: boolean;
    payment: {
        success: boolean;
        data: import('../../../../prisma-client').Prisma.JsonValue;
        id: number;
        refunded: boolean;
        currency: string;
        uid: string;
        paymentOption: import('../../../../prisma-client').$Enums.PaymentOption | null;
        bookingId: number;
        externalId: string;
        appId: string | null;
        amount: number;
        fee: number;
    }[];
    attendees: {
        name: string;
        id: number;
        email: string;
        locale: string | null;
        timeZone: string;
        bookingId: number | null;
        phoneNumber: string | null;
        noShow: boolean | null;
    }[];
    id: number;
    title: string;
    metadata: import('../../../../prisma-client').Prisma.JsonValue;
    status: import('../../../../prisma-client').$Enums.BookingStatus;
    description: string | null;
    paid: boolean;
    location: string | null;
    rescheduled: boolean | null;
    rating: number | null;
    uid: string;
    userId: number | null;
    eventTypeId: number | null;
    customInputs: import('../../../../prisma-client').Prisma.JsonValue;
    smsReminderNumber: string | null;
    recurringEventId: string | null;
    cancellationReason: string | null;
    cancelledBy: string | null;
    iCalUID: string | null;
    responses: import('../../../../prisma-client').Prisma.JsonValue;
    startTime: Date;
    endTime: Date;
    idempotencyKey: string | null;
    userPrimaryEmail: string | null;
    createdAt: Date;
    updatedAt: Date | null;
    destinationCalendarId: number | null;
    rejectionReason: string | null;
    reassignReason: string | null;
    reassignById: number | null;
    dynamicEventSlugRef: string | null;
    dynamicGroupSlugRef: string | null;
    fromReschedule: string | null;
    scheduledJobs: string[];
    isRecorded: boolean;
    iCalSequence: number;
    ratingFeedback: string | null;
    noShowHost: boolean | null;
    oneTimePassword: string | null;
    rescheduledBy: string | null;
    creationSource: import('../../../../prisma-client').$Enums.CreationSource | null;
    appsStatus?: import("@calcom/types/Calendar").AppsStatus[];
    paymentUid?: string;
    paymentId?: number;
}>, Error, UseCreateBookingInput, unknown>;
export {};
//# sourceMappingURL=useCreateBooking.d.ts.map