import { Prisma } from '../../../prisma/client';
import type { Team } from '../../../prisma/client';
import type { UpId, UserAsPersonalProfile, UserProfile } from "@calcom/types/UserProfile";
declare const organizationSelect: {
    id: boolean;
    slug: boolean;
    name: boolean;
    metadata: boolean;
    logoUrl: boolean;
    bannerUrl: boolean;
    isPlatform: boolean;
};
export declare enum LookupTarget {
    User = 0,
    Profile = 1
}
export declare class ProfileRepository {
    static generateProfileUid(): string;
    private static findUserByid;
    private static getInheritedDataFromUser;
    static getLookupTarget(upId: UpId): {
        readonly type: LookupTarget.User;
        readonly id: number;
    } | {
        readonly type: LookupTarget.Profile;
        readonly id: number;
    };
    private static _create;
    /**
     * Accepts `email` as a source to derive username from when username is null
     * @returns
     */
    static create({ userId, organizationId, username, email, }: {
        userId: number;
        organizationId: number;
        username: string | null;
        email: string;
    }): Promise<{
        id: number;
        username: string;
        uid: string;
        organizationId: number;
        userId: number;
        createdAt: Date;
        updatedAt: Date;
    }>;
    static upsert({ create, update, updateWhere, }: {
        create: {
            userId: number;
            organizationId: number;
            username: string | null;
            email: string;
        };
        update: {
            username: string | null;
            email: string;
        };
        updateWhere: {
            userId: number;
            organizationId: number;
        };
    }): Promise<{
        id: number;
        username: string;
        uid: string;
        organizationId: number;
        userId: number;
        createdAt: Date;
        updatedAt: Date;
    }>;
    static createForExistingUser({ userId, organizationId, username, email, movedFromUserId, }: {
        userId: number;
        organizationId: number;
        username: string | null;
        email: string;
        movedFromUserId: number;
    }): Promise<{
        id: number;
        username: string;
        uid: string;
        organizationId: number;
        userId: number;
        createdAt: Date;
        updatedAt: Date;
    }>;
    static createMany({ users, organizationId, }: {
        users: {
            id: number;
            username: string;
            email: string;
        }[];
        organizationId: number;
    }): import('../../../prisma-client/runtime/library').PrismaPromise<import('../../../prisma-client/runtime/library').GetBatchResult>;
    static delete({ userId, organizationId }: {
        userId: number;
        organizationId: number;
    }): import('../../../prisma-client/runtime/library').PrismaPromise<import('../../../prisma-client/runtime/library').GetBatchResult>;
    static deleteMany({ userIds }: {
        userIds: number[];
    }): import('../../../prisma-client/runtime/library').PrismaPromise<import('../../../prisma-client/runtime/library').GetBatchResult>;
    static findByUserIdAndOrgId({ userId, organizationId, }: {
        userId: number;
        organizationId: number | null;
    }): Promise<({
        organization: {
            requestedSlug: string | null;
            metadata: {
                requestedSlug: string | null;
                paymentId?: string | undefined;
                subscriptionId?: string | null | undefined;
                subscriptionItemId?: string | null | undefined;
                orgSeats?: number | null | undefined;
                orgPricePerSeat?: number | null | undefined;
                migratedToOrgFrom?: {
                    teamSlug?: string | null | undefined;
                    lastMigrationTime?: string | undefined;
                    reverted?: boolean | undefined;
                    lastRevertTime?: string | undefined;
                } | undefined;
                billingPeriod?: import('../../../prisma/zod-utils').BillingPeriod | undefined;
            };
            name: string;
            id: number;
            slug: string | null;
            logoUrl: string | null;
            bannerUrl: string | null;
            isPlatform: boolean;
        };
        user: {
            name: string | null;
            id: number;
            username: string | null;
            email: string;
            locale: string | null;
            startTime: number;
            endTime: number;
            avatarUrl: string | null;
            bufferTime: number;
            defaultScheduleId: number | null;
            isPlatformManaged: boolean;
        };
        id: number;
        username: string;
        uid: string;
        organizationId: number;
        userId: number;
        createdAt: Date;
        updatedAt: Date;
    } & {
        updatedAt?: string | undefined;
        createdAt?: string | undefined;
        upId: string;
        organization: Omit<Pick<{
            id: number;
            name: string;
            slug: string | null;
            logoUrl: string | null;
            calVideoLogo: string | null;
            appLogo: string | null;
            appIconLogo: string | null;
            bio: string | null;
            hideBranding: boolean;
            isPrivate: boolean;
            hideBookATeamMember: boolean;
            createdAt: Date;
            metadata: Prisma.JsonValue | null;
            theme: string | null;
            rrResetInterval: import('../../../prisma-client').$Enums.RRResetInterval | null;
            brandColor: string | null;
            darkBrandColor: string | null;
            bannerUrl: string | null;
            parentId: number | null;
            timeFormat: number | null;
            timeZone: string;
            weekStart: string;
            isOrganization: boolean;
            pendingPayment: boolean;
            isPlatform: boolean;
            createdByOAuthClientId: string | null;
            smsLockState: import('../../../prisma-client').$Enums.SMSLockState;
            smsLockReviewedByAdmin: boolean;
            bookingLimits: Prisma.JsonValue | null;
            includeManagedEventsInLimits: boolean;
        }, "name" | "id" | "metadata" | "slug" | "logoUrl" | "bannerUrl" | "isPlatform">, "metadata"> & {
            requestedSlug: string | null;
            metadata: {
                requestedSlug: string | null;
                paymentId?: string | undefined;
                subscriptionId?: string | null | undefined;
                subscriptionItemId?: string | null | undefined;
                orgSeats?: number | null | undefined;
                orgPricePerSeat?: number | null | undefined;
                migratedToOrgFrom?: {
                    teamSlug?: string | null | undefined;
                    lastMigrationTime?: string | undefined;
                    reverted?: boolean | undefined;
                    lastRevertTime?: string | undefined;
                } | undefined;
                billingPeriod?: import('../../../prisma/zod-utils').BillingPeriod | undefined;
            };
        };
    }) | null>;
    static findByOrgIdAndUsername({ organizationId, username, }: {
        organizationId: number;
        username: string;
    }): Promise<({
        user: {
            name: string | null;
            id: number;
            username: string | null;
            email: string;
            locale: string | null;
            startTime: number;
            endTime: number;
            avatarUrl: string | null;
            bufferTime: number;
            defaultScheduleId: number | null;
            isPlatformManaged: boolean;
        };
        organization: {
            name: string;
            id: number;
            metadata: Prisma.JsonValue;
            slug: string | null;
            logoUrl: string | null;
            bannerUrl: string | null;
            isPlatform: boolean;
        };
    } & {
        id: number;
        username: string;
        uid: string;
        organizationId: number;
        userId: number;
        createdAt: Date;
        updatedAt: Date;
    }) | null>;
    static findByUpId(upId: string): Promise<{
        name: string | null;
        avatarUrl: string | null;
        startTime: number;
        endTime: number;
        bufferTime: number;
        username: string | null;
        upId: string;
        id: null;
        organizationId: null;
        organization: null;
    } | {
        name: string | null;
        avatarUrl: string | null;
        startTime: number;
        endTime: number;
        bufferTime: number;
        user: {
            name: string | null;
            id: number;
            username: string | null;
            email: string;
            locale: string | null;
            startTime: number;
            endTime: number;
            avatarUrl: string | null;
            bufferTime: number;
            defaultScheduleId: number | null;
            isPlatformManaged: boolean;
        };
        organization: {
            name: string;
            id: number;
            metadata: Prisma.JsonValue;
            members: {
                id: number;
                role: import('../../../prisma-client').$Enums.MembershipRole;
                userId: number;
                teamId: number;
                disableImpersonation: boolean;
                accepted: boolean;
            }[];
            slug: string | null;
            organizationSettings: {
                allowSEOIndexing: boolean;
                lockEventTypeCreationForUsers: boolean;
            } | null;
            logoUrl: string | null;
            isPrivate: boolean;
            bannerUrl: string | null;
            isPlatform: boolean;
        } & Omit<Pick<{
            id: number;
            name: string;
            slug: string | null;
            logoUrl: string | null;
            calVideoLogo: string | null;
            appLogo: string | null;
            appIconLogo: string | null;
            bio: string | null;
            hideBranding: boolean;
            isPrivate: boolean;
            hideBookATeamMember: boolean;
            createdAt: Date;
            metadata: Prisma.JsonValue | null;
            theme: string | null;
            rrResetInterval: import('../../../prisma-client').$Enums.RRResetInterval | null;
            brandColor: string | null;
            darkBrandColor: string | null;
            bannerUrl: string | null;
            parentId: number | null;
            timeFormat: number | null;
            timeZone: string;
            weekStart: string;
            isOrganization: boolean;
            pendingPayment: boolean;
            isPlatform: boolean;
            createdByOAuthClientId: string | null;
            smsLockState: import('../../../prisma-client').$Enums.SMSLockState;
            smsLockReviewedByAdmin: boolean;
            bookingLimits: Prisma.JsonValue | null;
            includeManagedEventsInLimits: boolean;
        }, "name" | "id" | "metadata" | "slug" | "logoUrl" | "bannerUrl" | "isPlatform">, "metadata"> & {
            requestedSlug: string | null;
            metadata: {
                requestedSlug: string | null;
                paymentId?: string | undefined;
                subscriptionId?: string | null | undefined;
                subscriptionItemId?: string | null | undefined;
                orgSeats?: number | null | undefined;
                orgPricePerSeat?: number | null | undefined;
                migratedToOrgFrom?: {
                    teamSlug?: string | null | undefined;
                    lastMigrationTime?: string | undefined;
                    reverted?: boolean | undefined;
                    lastRevertTime?: string | undefined;
                } | undefined;
                billingPeriod?: import('../../../prisma/zod-utils').BillingPeriod | undefined;
            };
        };
        movedFromUser: {
            id: number;
        } | null;
        id: number;
        username: string;
        uid: string;
        organizationId: number;
        userId: number;
        createdAt: Date & string;
        updatedAt: Date & string;
        upId: string;
    } | null>;
    static findById(id: number | null): Promise<({
        user: {
            name: string | null;
            id: number;
            username: string | null;
            email: string;
            locale: string | null;
            startTime: number;
            endTime: number;
            avatarUrl: string | null;
            bufferTime: number;
            defaultScheduleId: number | null;
            isPlatformManaged: boolean;
        };
        organization: {
            name: string;
            id: number;
            metadata: Prisma.JsonValue;
            members: {
                id: number;
                role: import('../../../prisma-client').$Enums.MembershipRole;
                userId: number;
                teamId: number;
                disableImpersonation: boolean;
                accepted: boolean;
            }[];
            slug: string | null;
            organizationSettings: {
                allowSEOIndexing: boolean;
                lockEventTypeCreationForUsers: boolean;
            } | null;
            logoUrl: string | null;
            isPrivate: boolean;
            bannerUrl: string | null;
            isPlatform: boolean;
        };
        movedFromUser: {
            id: number;
        } | null;
    } & {
        id: number;
        username: string;
        uid: string;
        organizationId: number;
        userId: number;
        createdAt: Date;
        updatedAt: Date;
    } & {
        updatedAt?: string | undefined;
        createdAt?: string | undefined;
        upId: string;
        organization: Omit<Pick<{
            id: number;
            name: string;
            slug: string | null;
            logoUrl: string | null;
            calVideoLogo: string | null;
            appLogo: string | null;
            appIconLogo: string | null;
            bio: string | null;
            hideBranding: boolean;
            isPrivate: boolean;
            hideBookATeamMember: boolean;
            createdAt: Date;
            metadata: Prisma.JsonValue | null;
            theme: string | null;
            rrResetInterval: import('../../../prisma-client').$Enums.RRResetInterval | null;
            brandColor: string | null;
            darkBrandColor: string | null;
            bannerUrl: string | null;
            parentId: number | null;
            timeFormat: number | null;
            timeZone: string;
            weekStart: string;
            isOrganization: boolean;
            pendingPayment: boolean;
            isPlatform: boolean;
            createdByOAuthClientId: string | null;
            smsLockState: import('../../../prisma-client').$Enums.SMSLockState;
            smsLockReviewedByAdmin: boolean;
            bookingLimits: Prisma.JsonValue | null;
            includeManagedEventsInLimits: boolean;
        }, "name" | "id" | "metadata" | "slug" | "logoUrl" | "bannerUrl" | "isPlatform">, "metadata"> & {
            requestedSlug: string | null;
            metadata: {
                requestedSlug: string | null;
                paymentId?: string | undefined;
                subscriptionId?: string | null | undefined;
                subscriptionItemId?: string | null | undefined;
                orgSeats?: number | null | undefined;
                orgPricePerSeat?: number | null | undefined;
                migratedToOrgFrom?: {
                    teamSlug?: string | null | undefined;
                    lastMigrationTime?: string | undefined;
                    reverted?: boolean | undefined;
                    lastRevertTime?: string | undefined;
                } | undefined;
                billingPeriod?: import('../../../prisma/zod-utils').BillingPeriod | undefined;
            };
        };
    }) | null>;
    static findManyByOrgSlugOrRequestedSlug({ usernames, orgSlug, }: {
        usernames: string[];
        orgSlug: string;
    }): Promise<({
        user: {
            name: string | null;
            id: number;
            username: string | null;
            email: string;
            locale: string | null;
            startTime: number;
            endTime: number;
            avatarUrl: string | null;
            bufferTime: number;
            defaultScheduleId: number | null;
            isPlatformManaged: boolean;
        };
        organization: {
            name: string;
            id: number;
            metadata: Prisma.JsonValue;
            slug: string | null;
            organizationSettings: {
                allowSEOIndexing: boolean;
                orgProfileRedirectsToVerifiedDomain: boolean;
            } | null;
            logoUrl: string | null;
            bannerUrl: string | null;
            isPlatform: boolean;
        };
    } & {
        id: number;
        username: string;
        uid: string;
        organizationId: number;
        userId: number;
        createdAt: Date;
        updatedAt: Date;
    } & {
        updatedAt?: string | undefined;
        createdAt?: string | undefined;
        upId: string;
        organization: Omit<Pick<{
            id: number;
            name: string;
            slug: string | null;
            logoUrl: string | null;
            calVideoLogo: string | null;
            appLogo: string | null;
            appIconLogo: string | null;
            bio: string | null;
            hideBranding: boolean;
            isPrivate: boolean;
            hideBookATeamMember: boolean;
            createdAt: Date;
            metadata: Prisma.JsonValue | null;
            theme: string | null;
            rrResetInterval: import('../../../prisma-client').$Enums.RRResetInterval | null;
            brandColor: string | null;
            darkBrandColor: string | null;
            bannerUrl: string | null;
            parentId: number | null;
            timeFormat: number | null;
            timeZone: string;
            weekStart: string;
            isOrganization: boolean;
            pendingPayment: boolean;
            isPlatform: boolean;
            createdByOAuthClientId: string | null;
            smsLockState: import('../../../prisma-client').$Enums.SMSLockState;
            smsLockReviewedByAdmin: boolean;
            bookingLimits: Prisma.JsonValue | null;
            includeManagedEventsInLimits: boolean;
        }, "name" | "id" | "metadata" | "slug" | "logoUrl" | "bannerUrl" | "isPlatform">, "metadata"> & {
            requestedSlug: string | null;
            metadata: {
                requestedSlug: string | null;
                paymentId?: string | undefined;
                subscriptionId?: string | null | undefined;
                subscriptionItemId?: string | null | undefined;
                orgSeats?: number | null | undefined;
                orgPricePerSeat?: number | null | undefined;
                migratedToOrgFrom?: {
                    teamSlug?: string | null | undefined;
                    lastMigrationTime?: string | undefined;
                    reverted?: boolean | undefined;
                    lastRevertTime?: string | undefined;
                } | undefined;
                billingPeriod?: import('../../../prisma/zod-utils').BillingPeriod | undefined;
            };
        };
    })[]>;
    static findAllProfilesForUserIncludingMovedUser(user: {
        id: number;
        username: string | null;
    }): Promise<UserProfile[]>;
    static findManyForUsers(userIds: number[]): Promise<({
        username: string;
        id: number;
        userId: number;
        uid: string;
        name: string;
        organizationId: number;
        organization: {
            requestedSlug: string | null;
            metadata: {
                requestedSlug: string | null;
                paymentId?: string | undefined;
                subscriptionId?: string | null | undefined;
                subscriptionItemId?: string | null | undefined;
                orgSeats?: number | null | undefined;
                orgPricePerSeat?: number | null | undefined;
                migratedToOrgFrom?: {
                    teamSlug?: string | null | undefined;
                    lastMigrationTime?: string | undefined;
                    reverted?: boolean | undefined;
                    lastRevertTime?: string | undefined;
                } | undefined;
                billingPeriod?: import('../../../prisma/zod-utils').BillingPeriod | undefined;
            };
            name: string;
            id: number;
            slug: string | null;
            logoUrl: string | null;
            bannerUrl: string | null;
            isPlatform: boolean;
        };
    } & {
        updatedAt?: string | undefined;
        createdAt?: string | undefined;
        upId: string;
        organization: Omit<Pick<{
            id: number;
            name: string;
            slug: string | null;
            logoUrl: string | null;
            calVideoLogo: string | null;
            appLogo: string | null;
            appIconLogo: string | null;
            bio: string | null;
            hideBranding: boolean;
            isPrivate: boolean;
            hideBookATeamMember: boolean;
            createdAt: Date;
            metadata: Prisma.JsonValue | null;
            theme: string | null;
            rrResetInterval: import('../../../prisma-client').$Enums.RRResetInterval | null;
            brandColor: string | null;
            darkBrandColor: string | null;
            bannerUrl: string | null;
            parentId: number | null;
            timeFormat: number | null;
            timeZone: string;
            weekStart: string;
            isOrganization: boolean;
            pendingPayment: boolean;
            isPlatform: boolean;
            createdByOAuthClientId: string | null;
            smsLockState: import('../../../prisma-client').$Enums.SMSLockState;
            smsLockReviewedByAdmin: boolean;
            bookingLimits: Prisma.JsonValue | null;
            includeManagedEventsInLimits: boolean;
        }, "name" | "id" | "metadata" | "slug" | "logoUrl" | "bannerUrl" | "isPlatform">, "metadata"> & {
            requestedSlug: string | null;
            metadata: {
                requestedSlug: string | null;
                paymentId?: string | undefined;
                subscriptionId?: string | null | undefined;
                subscriptionItemId?: string | null | undefined;
                orgSeats?: number | null | undefined;
                orgPricePerSeat?: number | null | undefined;
                migratedToOrgFrom?: {
                    teamSlug?: string | null | undefined;
                    lastMigrationTime?: string | undefined;
                    reverted?: boolean | undefined;
                    lastRevertTime?: string | undefined;
                } | undefined;
                billingPeriod?: import('../../../prisma/zod-utils').BillingPeriod | undefined;
            };
        };
    })[]>;
    static findManyForUser(user: {
        id: number;
    }): Promise<({
        username: string;
        id: number;
        userId: number;
        uid: string;
        name: string;
        organizationId: number;
        organization: {
            requestedSlug: string | null;
            metadata: {
                requestedSlug: string | null;
                paymentId?: string | undefined;
                subscriptionId?: string | null | undefined;
                subscriptionItemId?: string | null | undefined;
                orgSeats?: number | null | undefined;
                orgPricePerSeat?: number | null | undefined;
                migratedToOrgFrom?: {
                    teamSlug?: string | null | undefined;
                    lastMigrationTime?: string | undefined;
                    reverted?: boolean | undefined;
                    lastRevertTime?: string | undefined;
                } | undefined;
                billingPeriod?: import('../../../prisma/zod-utils').BillingPeriod | undefined;
            };
            name: string;
            id: number;
            slug: string | null;
            logoUrl: string | null;
            bannerUrl: string | null;
            isPlatform: boolean;
        };
    } & {
        updatedAt?: string | undefined;
        createdAt?: string | undefined;
        upId: string;
        organization: Omit<Pick<{
            id: number;
            name: string;
            slug: string | null;
            logoUrl: string | null;
            calVideoLogo: string | null;
            appLogo: string | null;
            appIconLogo: string | null;
            bio: string | null;
            hideBranding: boolean;
            isPrivate: boolean;
            hideBookATeamMember: boolean;
            createdAt: Date;
            metadata: Prisma.JsonValue | null;
            theme: string | null;
            rrResetInterval: import('../../../prisma-client').$Enums.RRResetInterval | null;
            brandColor: string | null;
            darkBrandColor: string | null;
            bannerUrl: string | null;
            parentId: number | null;
            timeFormat: number | null;
            timeZone: string;
            weekStart: string;
            isOrganization: boolean;
            pendingPayment: boolean;
            isPlatform: boolean;
            createdByOAuthClientId: string | null;
            smsLockState: import('../../../prisma-client').$Enums.SMSLockState;
            smsLockReviewedByAdmin: boolean;
            bookingLimits: Prisma.JsonValue | null;
            includeManagedEventsInLimits: boolean;
        }, "name" | "id" | "metadata" | "slug" | "logoUrl" | "bannerUrl" | "isPlatform">, "metadata"> & {
            requestedSlug: string | null;
            metadata: {
                requestedSlug: string | null;
                paymentId?: string | undefined;
                subscriptionId?: string | null | undefined;
                subscriptionItemId?: string | null | undefined;
                orgSeats?: number | null | undefined;
                orgPricePerSeat?: number | null | undefined;
                migratedToOrgFrom?: {
                    teamSlug?: string | null | undefined;
                    lastMigrationTime?: string | undefined;
                    reverted?: boolean | undefined;
                    lastRevertTime?: string | undefined;
                } | undefined;
                billingPeriod?: import('../../../prisma/zod-utils').BillingPeriod | undefined;
            };
        };
    })[]>;
    static findManyForOrg({ organizationId }: {
        organizationId: number;
    }): Promise<({
        user: {
            name: string | null;
            id: number;
            username: string | null;
            email: string;
            locale: string | null;
            startTime: number;
            endTime: number;
            avatarUrl: string | null;
            bufferTime: number;
            defaultScheduleId: number | null;
            isPlatformManaged: boolean;
        };
        organization: {
            name: string;
            id: number;
            metadata: Prisma.JsonValue;
            slug: string | null;
            logoUrl: string | null;
            bannerUrl: string | null;
            isPlatform: boolean;
        };
    } & {
        id: number;
        username: string;
        uid: string;
        organizationId: number;
        userId: number;
        createdAt: Date;
        updatedAt: Date;
    })[]>;
    static findByUserIdAndProfileId({ userId, profileId }: {
        userId: number;
        profileId: number;
    }): Promise<({
        user: {
            name: string | null;
            id: number;
            username: string | null;
            email: string;
            locale: string | null;
            startTime: number;
            endTime: number;
            avatarUrl: string | null;
            bufferTime: number;
            defaultScheduleId: number | null;
            isPlatformManaged: boolean;
        };
        organization: {
            name: string;
            id: number;
            metadata: Prisma.JsonValue;
            slug: string | null;
            logoUrl: string | null;
            bannerUrl: string | null;
            isPlatform: boolean;
        };
    } & {
        id: number;
        username: string;
        uid: string;
        organizationId: number;
        userId: number;
        createdAt: Date;
        updatedAt: Date;
    } & {
        updatedAt?: string | undefined;
        createdAt?: string | undefined;
        upId: string;
        organization: Omit<Pick<{
            id: number;
            name: string;
            slug: string | null;
            logoUrl: string | null;
            calVideoLogo: string | null;
            appLogo: string | null;
            appIconLogo: string | null;
            bio: string | null;
            hideBranding: boolean;
            isPrivate: boolean;
            hideBookATeamMember: boolean;
            createdAt: Date;
            metadata: Prisma.JsonValue | null;
            theme: string | null;
            rrResetInterval: import('../../../prisma-client').$Enums.RRResetInterval | null;
            brandColor: string | null;
            darkBrandColor: string | null;
            bannerUrl: string | null;
            parentId: number | null;
            timeFormat: number | null;
            timeZone: string;
            weekStart: string;
            isOrganization: boolean;
            pendingPayment: boolean;
            isPlatform: boolean;
            createdByOAuthClientId: string | null;
            smsLockState: import('../../../prisma-client').$Enums.SMSLockState;
            smsLockReviewedByAdmin: boolean;
            bookingLimits: Prisma.JsonValue | null;
            includeManagedEventsInLimits: boolean;
        }, "name" | "id" | "metadata" | "slug" | "logoUrl" | "bannerUrl" | "isPlatform">, "metadata"> & {
            requestedSlug: string | null;
            metadata: {
                requestedSlug: string | null;
                paymentId?: string | undefined;
                subscriptionId?: string | null | undefined;
                subscriptionItemId?: string | null | undefined;
                orgSeats?: number | null | undefined;
                orgPricePerSeat?: number | null | undefined;
                migratedToOrgFrom?: {
                    teamSlug?: string | null | undefined;
                    lastMigrationTime?: string | undefined;
                    reverted?: boolean | undefined;
                    lastRevertTime?: string | undefined;
                } | undefined;
                billingPeriod?: import('../../../prisma/zod-utils').BillingPeriod | undefined;
            };
        };
    }) | null>;
    /**
     * Personal profile should come from Profile table only
     */
    static buildPersonalProfileFromUser({ user, }: {
        user: {
            username: string | null;
            id: number;
        };
    }): UserAsPersonalProfile;
    static _getPrismaWhereForProfilesOfOrg({ orgSlug }: {
        orgSlug: string | null;
    }): {
        profiles: {
            some: {
                organization: {
                    slug: string;
                };
            };
        } | {
            none: {};
        };
    };
}
export declare const normalizeProfile: <T extends {
    id: number;
    organization: Pick<Team, keyof typeof organizationSelect>;
    createdAt?: Date;
    updatedAt?: Date;
}>(profile: T) => T & {
    updatedAt?: string | undefined;
    createdAt?: string | undefined;
    upId: string;
    organization: Omit<Pick<{
        id: number;
        name: string;
        slug: string | null;
        logoUrl: string | null;
        calVideoLogo: string | null;
        appLogo: string | null;
        appIconLogo: string | null;
        bio: string | null;
        hideBranding: boolean;
        isPrivate: boolean;
        hideBookATeamMember: boolean;
        createdAt: Date;
        metadata: Prisma.JsonValue | null;
        theme: string | null;
        rrResetInterval: import('../../../prisma-client').$Enums.RRResetInterval | null;
        brandColor: string | null;
        darkBrandColor: string | null;
        bannerUrl: string | null;
        parentId: number | null;
        timeFormat: number | null;
        timeZone: string;
        weekStart: string;
        isOrganization: boolean;
        pendingPayment: boolean;
        isPlatform: boolean;
        createdByOAuthClientId: string | null;
        smsLockState: import('../../../prisma-client').$Enums.SMSLockState;
        smsLockReviewedByAdmin: boolean;
        bookingLimits: Prisma.JsonValue | null;
        includeManagedEventsInLimits: boolean;
    }, "name" | "id" | "metadata" | "slug" | "logoUrl" | "bannerUrl" | "isPlatform">, "metadata"> & {
        requestedSlug: string | null;
        metadata: {
            requestedSlug: string | null;
            paymentId?: string | undefined;
            subscriptionId?: string | null | undefined;
            subscriptionItemId?: string | null | undefined;
            orgSeats?: number | null | undefined;
            orgPricePerSeat?: number | null | undefined;
            migratedToOrgFrom?: {
                teamSlug?: string | null | undefined;
                lastMigrationTime?: string | undefined;
                reverted?: boolean | undefined;
                lastRevertTime?: string | undefined;
            } | undefined;
            billingPeriod?: import('../../../prisma/zod-utils').BillingPeriod | undefined;
        };
    };
};
export {};
//# sourceMappingURL=profile.d.ts.map