import type { Prisma } from '../../../../prisma-client';
import type { IncomingMessage } from "http";
import type { Logger } from "tslog";
import type { RoutingFormResponse } from '../../../../lib/server/getLuckyUser';
import type { CredentialForCalendarService } from "@calcom/types/Credential";
import type { NewBookingEventType } from "./getEventTypesFromDB";
import { loadUsers } from "./loadUsers";
export type UsersWithDelegationCredentials = (Omit<Awaited<ReturnType<typeof loadUsers>>[number], "credentials"> & {
    isFixed?: boolean;
    metadata?: Prisma.JsonValue;
    createdAt?: Date;
    credentials: CredentialForCalendarService[];
})[];
type EventType = Pick<NewBookingEventType, "hosts" | "users" | "id" | "userId" | "schedulingType" | "maxLeadThreshold" | "team" | "assignAllTeamMembers" | "assignRRMembersUsingSegment" | "rrSegmentQueryValue" | "isRRWeightsEnabled" | "rescheduleWithSameRoundRobinHost" | "teamId">;
type InputProps = {
    req: IncomingMessage;
    eventType: EventType;
    eventTypeId: number;
    dynamicUserList: string[];
    logger: Logger<unknown>;
    routedTeamMemberIds: number[] | null;
    contactOwnerEmail: string | null;
    rescheduleUid: string | null;
    routingFormResponse: RoutingFormResponse | null;
};
export declare function loadAndValidateUsers({ req, eventType, eventTypeId, dynamicUserList, logger, routedTeamMemberIds, contactOwnerEmail, rescheduleUid, routingFormResponse, }: InputProps): Promise<{
    qualifiedRRUsers: UsersWithDelegationCredentials;
    additionalFallbackRRUsers: UsersWithDelegationCredentials;
    fixedUsers: UsersWithDelegationCredentials;
}>;
export {};
//# sourceMappingURL=loadAndValidateUsers.d.ts.map