default: ModelConstructor<
    InferData<
        {
            aboutLinks: StringType<true>;
            createdAt: DateType<false>;
            email: StringType<true>;
            id: StringType<false>;
            inviteLinkID: StringType<false>;
            ipAddress: StringType<false>;
            language: StringType<false>;
            languages: StringType<true>;
            moderatedAt: DateType<false>;
            moderatedBy: StringType<false>;
            plannedReviews: StringType<true>;
            rejectionReason: StringType<false>;
            status: StringType<false>;
            termsAccepted: BooleanType<false>;
        },
    >,
    InferVirtual<
        {
            aboutLinks: StringType<true>;
            createdAt: DateType<false>;
            email: StringType<true>;
            id: StringType<false>;
            inviteLinkID: StringType<false>;
            ipAddress: StringType<false>;
            language: StringType<false>;
            languages: StringType<true>;
            moderatedAt: DateType<false>;
            moderatedBy: StringType<false>;
            plannedReviews: StringType<true>;
            rejectionReason: StringType<false>;
            status: StringType<false>;
            termsAccepted: BooleanType<false>;
        },
    >,
    InferData<
        {
            aboutLinks: StringType<true>;
            createdAt: DateType<false>;
            email: StringType<true>;
            id: StringType<false>;
            inviteLinkID: StringType<false>;
            ipAddress: StringType<false>;
            language: StringType<false>;
            languages: StringType<true>;
            moderatedAt: DateType<false>;
            moderatedBy: StringType<false>;
            plannedReviews: StringType<true>;
            rejectionReason: StringType<false>;
            status: StringType<false>;
            termsAccepted: BooleanType<false>;
        },
    > & InferVirtual<
        {
            aboutLinks: StringType<true>;
            createdAt: DateType<false>;
            email: StringType<true>;
            id: StringType<false>;
            inviteLinkID: StringType<false>;
            ipAddress: StringType<false>;
            language: StringType<false>;
            languages: StringType<true>;
            moderatedAt: DateType<false>;
            moderatedBy: StringType<false>;
            plannedReviews: StringType<true>;
            rejectionReason: StringType<false>;
            status: StringType<false>;
            termsAccepted: BooleanType<false>;
        },
    > & ModelInstanceCore<
        InferData<
            {
                aboutLinks: StringType<true>;
                createdAt: DateType<false>;
                email: StringType<true>;
                id: StringType<false>;
                inviteLinkID: StringType<false>;
                ipAddress: StringType<false>;
                language: StringType<false>;
                languages: StringType<true>;
                moderatedAt: DateType<false>;
                moderatedBy: StringType<false>;
                plannedReviews: StringType<true>;
                rejectionReason: StringType<false>;
                status: StringType<false>;
                termsAccepted: BooleanType<false>;
            },
        >,
        InferVirtual<
            {
                aboutLinks: StringType<true>;
                createdAt: DateType<false>;
                email: StringType<true>;
                id: StringType<false>;
                inviteLinkID: StringType<false>;
                ipAddress: StringType<false>;
                language: StringType<false>;
                languages: StringType<true>;
                moderatedAt: DateType<false>;
                moderatedBy: StringType<false>;
                plannedReviews: StringType<true>;
                rejectionReason: StringType<false>;
                status: StringType<false>;
                termsAccepted: BooleanType<false>;
            },
        >,
    > & object,
    "moderator"
    | "inviteLink",
> & {
    checkIPRateLimit(
        ipAddress: string,
        maxRequests: number,
        windowHours: number,
    ): Promise<boolean>;
    createRequest(
        data: {
            aboutLinks: string;
            email: string;
            ipAddress?: string;
            language: string;
            languages: string;
            plannedReviews: string;
            termsAccepted: boolean;
        },
    ): Promise<
        InferData<
            {
                aboutLinks: StringType<true>;
                createdAt: DateType<false>;
                email: StringType<true>;
                id: StringType<false>;
                inviteLinkID: StringType<false>;
                ipAddress: StringType<false>;
                language: StringType<false>;
                languages: StringType<true>;
                moderatedAt: DateType<false>;
                moderatedBy: StringType<false>;
                plannedReviews: StringType<true>;
                rejectionReason: StringType<false>;
                status: StringType<false>;
                termsAccepted: BooleanType<false>;
            },
        > & InferVirtual<
            {
                aboutLinks: StringType<true>;
                createdAt: DateType<false>;
                email: StringType<true>;
                id: StringType<false>;
                inviteLinkID: StringType<false>;
                ipAddress: StringType<false>;
                language: StringType<false>;
                languages: StringType<true>;
                moderatedAt: DateType<false>;
                moderatedBy: StringType<false>;
                plannedReviews: StringType<true>;
                rejectionReason: StringType<false>;
                status: StringType<false>;
                termsAccepted: BooleanType<false>;
            },
        > & ModelInstanceCore<
            InferData<
                {
                    aboutLinks: StringType<true>;
                    createdAt: DateType<false>;
                    email: StringType<true>;
                    id: StringType<false>;
                    inviteLinkID: StringType<false>;
                    ipAddress: StringType<false>;
                    language: StringType<false>;
                    languages: StringType<true>;
                    moderatedAt: DateType<false>;
                    moderatedBy: StringType<false>;
                    plannedReviews: StringType<true>;
                    rejectionReason: StringType<false>;
                    status: StringType<false>;
                    termsAccepted: BooleanType<false>;
                },
            >,
            InferVirtual<
                {
                    aboutLinks: StringType<true>;
                    createdAt: DateType<false>;
                    email: StringType<true>;
                    id: StringType<false>;
                    inviteLinkID: StringType<false>;
                    ipAddress: StringType<false>;
                    language: StringType<false>;
                    languages: StringType<true>;
                    moderatedAt: DateType<false>;
                    moderatedBy: StringType<false>;
                    plannedReviews: StringType<true>;
                    rejectionReason: StringType<false>;
                    status: StringType<false>;
                    termsAccepted: BooleanType<false>;
                },
            >,
        > & object & {
            inviteLink?: InferData<
                {
                    createdBy: StringType<true>;
                    createdOn: DateType<false>;
                    id: StringType<false>;
                    url: VirtualType<unknown, false>;
                    usedBy: StringType<false>;
                },
            > & InferVirtual<
                {
                    createdBy: StringType<true>;
                    createdOn: DateType<false>;
                    id: StringType<false>;
                    url: VirtualType<unknown, false>;
                    usedBy: StringType<false>;
                },
            > & ModelInstanceCore<
                InferData<
                    {
                        createdBy: StringType<true>;
                        createdOn: DateType<false>;
                        id: StringType<false>;
                        url: VirtualType<unknown, false>;
                        usedBy: StringType<false>;
                    },
                >,
                InferVirtual<
                    {
                        createdBy: StringType<true>;
                        createdOn: DateType<false>;
                        id: StringType<false>;
                        url: VirtualType<unknown, false>;
                        usedBy: StringType<false>;
                    },
                >,
            > & object & InviteLinkRelations;
            moderator?: UserView;
        },
    >;
    getModerated(
        limit?: number,
    ): Promise<
        (
            InferData<
                {
                    aboutLinks: StringType<true>;
                    createdAt: DateType<false>;
                    email: StringType<true>;
                    id: StringType<false>;
                    inviteLinkID: StringType<false>;
                    ipAddress: StringType<false>;
                    language: StringType<false>;
                    languages: StringType<true>;
                    moderatedAt: DateType<false>;
                    moderatedBy: StringType<false>;
                    plannedReviews: StringType<true>;
                    rejectionReason: StringType<false>;
                    status: StringType<false>;
                    termsAccepted: BooleanType<false>;
                },
            > & InferVirtual<
                {
                    aboutLinks: StringType<true>;
                    createdAt: DateType<false>;
                    email: StringType<true>;
                    id: StringType<false>;
                    inviteLinkID: StringType<false>;
                    ipAddress: StringType<false>;
                    language: StringType<false>;
                    languages: StringType<true>;
                    moderatedAt: DateType<false>;
                    moderatedBy: StringType<false>;
                    plannedReviews: StringType<true>;
                    rejectionReason: StringType<false>;
                    status: StringType<false>;
                    termsAccepted: BooleanType<false>;
                },
            > & ModelInstanceCore<
                InferData<
                    {
                        aboutLinks: StringType<true>;
                        createdAt: DateType<false>;
                        email: StringType<true>;
                        id: StringType<false>;
                        inviteLinkID: StringType<false>;
                        ipAddress: StringType<false>;
                        language: StringType<false>;
                        languages: StringType<true>;
                        moderatedAt: DateType<false>;
                        moderatedBy: StringType<false>;
                        plannedReviews: StringType<true>;
                        rejectionReason: StringType<false>;
                        status: StringType<false>;
                        termsAccepted: BooleanType<false>;
                    },
                >,
                InferVirtual<
                    {
                        aboutLinks: StringType<true>;
                        createdAt: DateType<false>;
                        email: StringType<true>;
                        id: StringType<false>;
                        inviteLinkID: StringType<false>;
                        ipAddress: StringType<false>;
                        language: StringType<false>;
                        languages: StringType<true>;
                        moderatedAt: DateType<false>;
                        moderatedBy: StringType<false>;
                        plannedReviews: StringType<true>;
                        rejectionReason: StringType<false>;
                        status: StringType<false>;
                        termsAccepted: BooleanType<false>;
                    },
                >,
            > & object & {
                inviteLink?: InferData<
                    {
                        createdBy: StringType<true>;
                        createdOn: DateType<false>;
                        id: StringType<false>;
                        url: VirtualType<unknown, false>;
                        usedBy: StringType<false>;
                    },
                > & InferVirtual<
                    {
                        createdBy: StringType<true>;
                        createdOn: DateType<false>;
                        id: StringType<false>;
                        url: VirtualType<unknown, false>;
                        usedBy: StringType<false>;
                    },
                > & ModelInstanceCore<
                    InferData<
                        {
                            createdBy: StringType<(...)>;
                            createdOn: DateType<(...)>;
                            id: StringType<(...)>;
                            url: VirtualType<(...), (...)>;
                            usedBy: StringType<(...)>;
                        },
                    >,
                    InferVirtual<
                        {
                            createdBy: StringType<(...)>;
                            createdOn: DateType<(...)>;
                            id: StringType<(...)>;
                            url: VirtualType<(...), (...)>;
                            usedBy: StringType<(...)>;
                        },
                    >,
                > & object & InviteLinkRelations;
                moderator?: UserView;
            }
        )[],
    >;
    getPending(): Promise<
        (
            InferData<
                {
                    aboutLinks: StringType<true>;
                    createdAt: DateType<false>;
                    email: StringType<true>;
                    id: StringType<false>;
                    inviteLinkID: StringType<false>;
                    ipAddress: StringType<false>;
                    language: StringType<false>;
                    languages: StringType<true>;
                    moderatedAt: DateType<false>;
                    moderatedBy: StringType<false>;
                    plannedReviews: StringType<true>;
                    rejectionReason: StringType<false>;
                    status: StringType<false>;
                    termsAccepted: BooleanType<false>;
                },
            > & InferVirtual<
                {
                    aboutLinks: StringType<true>;
                    createdAt: DateType<false>;
                    email: StringType<true>;
                    id: StringType<false>;
                    inviteLinkID: StringType<false>;
                    ipAddress: StringType<false>;
                    language: StringType<false>;
                    languages: StringType<true>;
                    moderatedAt: DateType<false>;
                    moderatedBy: StringType<false>;
                    plannedReviews: StringType<true>;
                    rejectionReason: StringType<false>;
                    status: StringType<false>;
                    termsAccepted: BooleanType<false>;
                },
            > & ModelInstanceCore<
                InferData<
                    {
                        aboutLinks: StringType<true>;
                        createdAt: DateType<false>;
                        email: StringType<true>;
                        id: StringType<false>;
                        inviteLinkID: StringType<false>;
                        ipAddress: StringType<false>;
                        language: StringType<false>;
                        languages: StringType<true>;
                        moderatedAt: DateType<false>;
                        moderatedBy: StringType<false>;
                        plannedReviews: StringType<true>;
                        rejectionReason: StringType<false>;
                        status: StringType<false>;
                        termsAccepted: BooleanType<false>;
                    },
                >,
                InferVirtual<
                    {
                        aboutLinks: StringType<true>;
                        createdAt: DateType<false>;
                        email: StringType<true>;
                        id: StringType<false>;
                        inviteLinkID: StringType<false>;
                        ipAddress: StringType<false>;
                        language: StringType<false>;
                        languages: StringType<true>;
                        moderatedAt: DateType<false>;
                        moderatedBy: StringType<false>;
                        plannedReviews: StringType<true>;
                        rejectionReason: StringType<false>;
                        status: StringType<false>;
                        termsAccepted: BooleanType<false>;
                    },
                >,
            > & object & {
                inviteLink?: InferData<
                    {
                        createdBy: StringType<true>;
                        createdOn: DateType<false>;
                        id: StringType<false>;
                        url: VirtualType<unknown, false>;
                        usedBy: StringType<false>;
                    },
                > & InferVirtual<
                    {
                        createdBy: StringType<true>;
                        createdOn: DateType<false>;
                        id: StringType<false>;
                        url: VirtualType<unknown, false>;
                        usedBy: StringType<false>;
                    },
                > & ModelInstanceCore<
                    InferData<
                        {
                            createdBy: StringType<(...)>;
                            createdOn: DateType<(...)>;
                            id: StringType<(...)>;
                            url: VirtualType<(...), (...)>;
                            usedBy: StringType<(...)>;
                        },
                    >,
                    InferVirtual<
                        {
                            createdBy: StringType<(...)>;
                            createdOn: DateType<(...)>;
                            id: StringType<(...)>;
                            url: VirtualType<(...), (...)>;
                            usedBy: StringType<(...)>;
                        },
                    >,
                > & object & InviteLinkRelations;
                moderator?: UserView;
            }
        )[],
    >;
    hasRecentRequest(email: string, cooldownHours: number): Promise<boolean>;
} & CreateFromRowStatic<
    MergeManifestMethods<
        {
            camelToSnake: {
                aboutLinks: "about_links";
                createdAt: "created_at";
                inviteLinkID: "invite_link_id";
                ipAddress: "ip_address";
                moderatedAt: "moderated_at";
                moderatedBy: "moderated_by";
                plannedReviews: "planned_reviews";
                rejectionReason: "rejection_reason";
                termsAccepted: "terms_accepted";
            };
            hasRevisions: false;
            relations: readonly [
                {
                    cardinality: "one";
                    hasRevisions: false;
                    name: "moderator";
                    sourceKey: "moderatedBy";
                    targetKey: "id";
                    targetTable: "users";
                },
                {
                    cardinality: "one";
                    hasRevisions: false;
                    name: "inviteLink";
                    sourceKey: "inviteLinkID";
                    targetKey: "id";
                    targetTable: "invite_links";
                },
            ];
            schema: {
                aboutLinks: StringType<true>;
                createdAt: DateType<false>;
                email: StringType<true>;
                id: StringType<false>;
                inviteLinkID: StringType<false>;
                ipAddress: StringType<false>;
                language: StringType<false>;
                languages: StringType<true>;
                moderatedAt: DateType<false>;
                moderatedBy: StringType<false>;
                plannedReviews: StringType<true>;
                rejectionReason: StringType<false>;
                status: StringType<false>;
                termsAccepted: BooleanType<false>;
            };
            tableName: "account_requests";
        },
        {
            checkIPRateLimit(
                ipAddress: string,
                maxRequests: number,
                windowHours: number,
            ): Promise<boolean>;
            createRequest(
                data: {
                    aboutLinks: string;
                    email: string;
                    ipAddress?: string;
                    language: string;
                    languages: string;
                    plannedReviews: string;
                    termsAccepted: boolean;
                },
            ): Promise<
                InferData<
                    {
                        aboutLinks: StringType<true>;
                        createdAt: DateType<false>;
                        email: StringType<true>;
                        id: StringType<false>;
                        inviteLinkID: StringType<false>;
                        ipAddress: StringType<false>;
                        language: StringType<false>;
                        languages: StringType<true>;
                        moderatedAt: DateType<false>;
                        moderatedBy: StringType<false>;
                        plannedReviews: StringType<true>;
                        rejectionReason: StringType<false>;
                        status: StringType<false>;
                        termsAccepted: BooleanType<false>;
                    },
                > & InferVirtual<
                    {
                        aboutLinks: StringType<true>;
                        createdAt: DateType<false>;
                        email: StringType<true>;
                        id: StringType<false>;
                        inviteLinkID: StringType<false>;
                        ipAddress: StringType<false>;
                        language: StringType<false>;
                        languages: StringType<true>;
                        moderatedAt: DateType<false>;
                        moderatedBy: StringType<false>;
                        plannedReviews: StringType<true>;
                        rejectionReason: StringType<false>;
                        status: StringType<false>;
                        termsAccepted: BooleanType<false>;
                    },
                > & ModelInstanceCore<
                    InferData<
                        {
                            aboutLinks: StringType<true>;
                            createdAt: DateType<false>;
                            email: StringType<true>;
                            id: StringType<false>;
                            inviteLinkID: StringType<false>;
                            ipAddress: StringType<false>;
                            language: StringType<false>;
                            languages: StringType<true>;
                            moderatedAt: DateType<false>;
                            moderatedBy: StringType<false>;
                            plannedReviews: StringType<true>;
                            rejectionReason: StringType<false>;
                            status: StringType<false>;
                            termsAccepted: BooleanType<false>;
                        },
                    >,
                    InferVirtual<
                        {
                            aboutLinks: StringType<true>;
                            createdAt: DateType<false>;
                            email: StringType<true>;
                            id: StringType<false>;
                            inviteLinkID: StringType<false>;
                            ipAddress: StringType<false>;
                            language: StringType<false>;
                            languages: StringType<true>;
                            moderatedAt: DateType<false>;
                            moderatedBy: StringType<false>;
                            plannedReviews: StringType<true>;
                            rejectionReason: StringType<false>;
                            status: StringType<false>;
                            termsAccepted: BooleanType<false>;
                        },
                    >,
                > & object & {
                    inviteLink?: InferData<
                        {
                            createdBy: StringType<(...)>;
                            createdOn: DateType<(...)>;
                            id: StringType<(...)>;
                            url: VirtualType<(...), (...)>;
                            usedBy: StringType<(...)>;
                        },
                    > & InferVirtual<
                        {
                            createdBy: StringType<(...)>;
                            createdOn: DateType<(...)>;
                            id: StringType<(...)>;
                            url: VirtualType<(...), (...)>;
                            usedBy: StringType<(...)>;
                        },
                    > & ModelInstanceCore<
                        InferData<
                            { createdBy: ...; createdOn: ...; id: ...; url: ...; usedBy: ... },
                        >,
                        InferVirtual<
                            { createdBy: ...; createdOn: ...; id: ...; url: ...; usedBy: ... },
                        >,
                    > & object & InviteLinkRelations;
                    moderator?: UserView;
                },
            >;
            getModerated(
                limit?: number,
            ): Promise<
                (
                    InferData<
                        {
                            aboutLinks: StringType<true>;
                            createdAt: DateType<false>;
                            email: StringType<true>;
                            id: StringType<false>;
                            inviteLinkID: StringType<false>;
                            ipAddress: StringType<false>;
                            language: StringType<false>;
                            languages: StringType<true>;
                            moderatedAt: DateType<false>;
                            moderatedBy: StringType<false>;
                            plannedReviews: StringType<true>;
                            rejectionReason: StringType<false>;
                            status: StringType<false>;
                            termsAccepted: BooleanType<false>;
                        },
                    > & InferVirtual<
                        {
                            aboutLinks: StringType<true>;
                            createdAt: DateType<false>;
                            email: StringType<true>;
                            id: StringType<false>;
                            inviteLinkID: StringType<false>;
                            ipAddress: StringType<false>;
                            language: StringType<false>;
                            languages: StringType<true>;
                            moderatedAt: DateType<false>;
                            moderatedBy: StringType<false>;
                            plannedReviews: StringType<true>;
                            rejectionReason: StringType<false>;
                            status: StringType<false>;
                            termsAccepted: BooleanType<false>;
                        },
                    > & ModelInstanceCore<
                        InferData<
                            {
                                aboutLinks: StringType<(...)>;
                                createdAt: DateType<(...)>;
                                email: StringType<(...)>;
                                id: StringType<(...)>;
                                inviteLinkID: StringType<(...)>;
                                ipAddress: StringType<(...)>;
                                language: StringType<(...)>;
                                languages: StringType<(...)>;
                                moderatedAt: DateType<(...)>;
                                moderatedBy: StringType<(...)>;
                                plannedReviews: StringType<(...)>;
                                rejectionReason: StringType<(...)>;
                                status: StringType<(...)>;
                                termsAccepted: BooleanType<(...)>;
                            },
                        >,
                        InferVirtual<
                            {
                                aboutLinks: StringType<(...)>;
                                createdAt: DateType<(...)>;
                                email: StringType<(...)>;
                                id: StringType<(...)>;
                                inviteLinkID: StringType<(...)>;
                                ipAddress: StringType<(...)>;
                                language: StringType<(...)>;
                                languages: StringType<(...)>;
                                moderatedAt: DateType<(...)>;
                                moderatedBy: StringType<(...)>;
                                plannedReviews: StringType<(...)>;
                                rejectionReason: StringType<(...)>;
                                status: StringType<(...)>;
                                termsAccepted: BooleanType<(...)>;
                            },
                        >,
                    > & object & {
                        inviteLink?: InferData<
                            { createdBy: ...; createdOn: ...; id: ...; url: ...; usedBy: ... },
                        > & InferVirtual<
                            { createdBy: ...; createdOn: ...; id: ...; url: ...; usedBy: ... },
                        > & ModelInstanceCore<InferData<(...)>, InferVirtual<(...)>> & object & InviteLinkRelations;
                        moderator?: UserView;
                    }
                )[],
            >;
            getPending(): Promise<
                (
                    InferData<
                        {
                            aboutLinks: StringType<true>;
                            createdAt: DateType<false>;
                            email: StringType<true>;
                            id: StringType<false>;
                            inviteLinkID: StringType<false>;
                            ipAddress: StringType<false>;
                            language: StringType<false>;
                            languages: StringType<true>;
                            moderatedAt: DateType<false>;
                            moderatedBy: StringType<false>;
                            plannedReviews: StringType<true>;
                            rejectionReason: StringType<false>;
                            status: StringType<false>;
                            termsAccepted: BooleanType<false>;
                        },
                    > & InferVirtual<
                        {
                            aboutLinks: StringType<true>;
                            createdAt: DateType<false>;
                            email: StringType<true>;
                            id: StringType<false>;
                            inviteLinkID: StringType<false>;
                            ipAddress: StringType<false>;
                            language: StringType<false>;
                            languages: StringType<true>;
                            moderatedAt: DateType<false>;
                            moderatedBy: StringType<false>;
                            plannedReviews: StringType<true>;
                            rejectionReason: StringType<false>;
                            status: StringType<false>;
                            termsAccepted: BooleanType<false>;
                        },
                    > & ModelInstanceCore<
                        InferData<
                            {
                                aboutLinks: StringType<(...)>;
                                createdAt: DateType<(...)>;
                                email: StringType<(...)>;
                                id: StringType<(...)>;
                                inviteLinkID: StringType<(...)>;
                                ipAddress: StringType<(...)>;
                                language: StringType<(...)>;
                                languages: StringType<(...)>;
                                moderatedAt: DateType<(...)>;
                                moderatedBy: StringType<(...)>;
                                plannedReviews: StringType<(...)>;
                                rejectionReason: StringType<(...)>;
                                status: StringType<(...)>;
                                termsAccepted: BooleanType<(...)>;
                            },
                        >,
                        InferVirtual<
                            {
                                aboutLinks: StringType<(...)>;
                                createdAt: DateType<(...)>;
                                email: StringType<(...)>;
                                id: StringType<(...)>;
                                inviteLinkID: StringType<(...)>;
                                ipAddress: StringType<(...)>;
                                language: StringType<(...)>;
                                languages: StringType<(...)>;
                                moderatedAt: DateType<(...)>;
                                moderatedBy: StringType<(...)>;
                                plannedReviews: StringType<(...)>;
                                rejectionReason: StringType<(...)>;
                                status: StringType<(...)>;
                                termsAccepted: BooleanType<(...)>;
                            },
                        >,
                    > & object & {
                        inviteLink?: InferData<
                            { createdBy: ...; createdOn: ...; id: ...; url: ...; usedBy: ... },
                        > & InferVirtual<
                            { createdBy: ...; createdOn: ...; id: ...; url: ...; usedBy: ... },
                        > & ModelInstanceCore<InferData<(...)>, InferVirtual<(...)>> & object & InviteLinkRelations;
                        moderator?: UserView;
                    }
                )[],
            >;
            hasRecentRequest(email: string, cooldownHours: number): Promise<boolean>;
        },
        EmptyInstanceMethods,
    >,
> = ...