import { users, Prisma } from "@prisma/client";
import { DefaultOmitFields } from "../../lib";
import { DefaultServiceProps } from "../../utils";
declare const primaryKey = "user_id";
export declare const ModelUserFields: {
    createdatetime: "createdatetime";
    createuserid: "createuserid";
    updatedatetime: "updatedatetime";
    updateuserid: "updateuserid";
    isdelete: "isdelete";
    istrash: "istrash";
    accountid: "accountid";
    status: "status";
    user_id: "user_id";
    login_username: "login_username";
    login_password: "login_password";
    user_type: "user_type";
    firstname: "firstname";
    lastname: "lastname";
    email: "email";
    address: "address";
    contact_country_code: "contact_country_code";
    contact_phone_number: "contact_phone_number";
    parent_user_id: "parent_user_id";
};
export type ModelUser = users;
export type ModelUserOmitFields = typeof primaryKey | DefaultOmitFields;
export type ModelUserCreateProps = {
    data: Omit<Prisma.usersUncheckedCreateInput, ModelUserOmitFields>;
};
export type ModelUserUpdateProps = {
    id: number;
    data: Omit<Prisma.usersUncheckedUpdateInput, ModelUserOmitFields>;
};
export type ModelUserTrashProps = {
    ids: number[];
};
export type ModelUserRemoveProps = {
    id: number;
};
export type ModelUserGetProps = {
    id: number;
};
export type ModelUserListProps = {
    where?: Prisma.usersWhereInput;
    orderBy?: Prisma.usersOrderByWithRelationInput | Prisma.usersOrderByWithRelationInput[];
    offset?: number;
    limit?: number;
};
export declare const UserModel: ({ ...rest }: DefaultServiceProps) => {
    selectedPrisma: any;
    primaryKey: "createdatetime" | "createuserid" | "updatedatetime" | "updateuserid" | "isdelete" | "istrash" | "accountid" | "status" | "user_id" | "login_username" | "login_password" | "user_type" | "firstname" | "lastname" | "email" | "address" | "contact_country_code" | "contact_phone_number" | "parent_user_id";
    getFields: (prefix?: string, excludeKeywords?: string[]) => Promise<{
        name: string;
        type: string;
    }[]>;
    create: ({ data, }: {
        data: Omit<any, DefaultOmitFields>;
    }) => Promise<{
        createdatetime: Date | null;
        createuserid: bigint;
        updatedatetime: Date | null;
        updateuserid: bigint;
        isdelete: boolean | null;
        istrash: boolean | null;
        accountid: bigint;
        status: boolean | null;
        user_id: bigint;
        login_username: string | null;
        login_password: string | null;
        user_type: string | null;
        firstname: string | null;
        lastname: string | null;
        email: string | null;
        address: string | null;
        contact_country_code: number;
        contact_phone_number: string | null;
        parent_user_id: bigint;
    }>;
    createMany: ({ dataList, disableRollback, }: {
        dataList: Omit<any, DefaultOmitFields>[];
        disableRollback?: boolean;
    }) => Promise<{
        createdatetime: Date | null;
        createuserid: bigint;
        updatedatetime: Date | null;
        updateuserid: bigint;
        isdelete: boolean | null;
        istrash: boolean | null;
        accountid: bigint;
        status: boolean | null;
        user_id: bigint;
        login_username: string | null;
        login_password: string | null;
        user_type: string | null;
        firstname: string | null;
        lastname: string | null;
        email: string | null;
        address: string | null;
        contact_country_code: number;
        contact_phone_number: string | null;
        parent_user_id: bigint;
    }[]>;
    get: ({ id, where, include, }: {
        id?: number;
        where?: Record<string, any>;
        include?: any;
    }) => Promise<{
        createdatetime: Date | null;
        createuserid: bigint;
        updatedatetime: Date | null;
        updateuserid: bigint;
        isdelete: boolean | null;
        istrash: boolean | null;
        accountid: bigint;
        status: boolean | null;
        user_id: bigint;
        login_username: string | null;
        login_password: string | null;
        user_type: string | null;
        firstname: string | null;
        lastname: string | null;
        email: string | null;
        address: string | null;
        contact_country_code: number;
        contact_phone_number: string | null;
        parent_user_id: bigint;
    } | null>;
    list: ({ where, orderBy, offset, limit, include, }?: any) => Promise<{
        createdatetime: Date | null;
        createuserid: bigint;
        updatedatetime: Date | null;
        updateuserid: bigint;
        isdelete: boolean | null;
        istrash: boolean | null;
        accountid: bigint;
        status: boolean | null;
        user_id: bigint;
        login_username: string | null;
        login_password: string | null;
        user_type: string | null;
        firstname: string | null;
        lastname: string | null;
        email: string | null;
        address: string | null;
        contact_country_code: number;
        contact_phone_number: string | null;
        parent_user_id: bigint;
    }[]>;
    count: ({ where, }?: {
        where?: Record<string, any>;
    }) => Promise<number>;
    aggregate: ({ field, operation, where, }: {
        field: "createdatetime" | "createuserid" | "updatedatetime" | "updateuserid" | "isdelete" | "istrash" | "accountid" | "status" | "user_id" | "login_username" | "login_password" | "user_type" | "firstname" | "lastname" | "email" | "address" | "contact_country_code" | "contact_phone_number" | "parent_user_id";
        operation?: "sum" | "avg" | "min" | "max" | "count";
        where?: Record<string, any>;
    }) => Promise<number>;
    update: ({ id, where, data, disableRollback }: {
        id?: number;
        where?: Record<string, any>;
        data: Partial<{
            createdatetime: Date | null;
            createuserid: bigint;
            updatedatetime: Date | null;
            updateuserid: bigint;
            isdelete: boolean | null;
            istrash: boolean | null;
            accountid: bigint;
            status: boolean | null;
            user_id: bigint;
            login_username: string | null;
            login_password: string | null;
            user_type: string | null;
            firstname: string | null;
            lastname: string | null;
            email: string | null;
            address: string | null;
            contact_country_code: number;
            contact_phone_number: string | null;
            parent_user_id: bigint;
        }>;
        disableRollback?: boolean;
    }) => Promise<{
        createdatetime: Date | null;
        createuserid: bigint;
        updatedatetime: Date | null;
        updateuserid: bigint;
        isdelete: boolean | null;
        istrash: boolean | null;
        accountid: bigint;
        status: boolean | null;
        user_id: bigint;
        login_username: string | null;
        login_password: string | null;
        user_type: string | null;
        firstname: string | null;
        lastname: string | null;
        email: string | null;
        address: string | null;
        contact_country_code: number;
        contact_phone_number: string | null;
        parent_user_id: bigint;
    }>;
    updateMany: ({ dataList, disableRollback, }: {
        dataList: {
            where: Record<string, any>;
            data: Partial<{
                createdatetime: Date | null;
                createuserid: bigint;
                updatedatetime: Date | null;
                updateuserid: bigint;
                isdelete: boolean | null;
                istrash: boolean | null;
                accountid: bigint;
                status: boolean | null;
                user_id: bigint;
                login_username: string | null;
                login_password: string | null;
                user_type: string | null;
                firstname: string | null;
                lastname: string | null;
                email: string | null;
                address: string | null;
                contact_country_code: number;
                contact_phone_number: string | null;
                parent_user_id: bigint;
            }>;
        }[];
        disableRollback?: boolean;
    }) => Promise<{
        createdatetime: Date | null;
        createuserid: bigint;
        updatedatetime: Date | null;
        updateuserid: bigint;
        isdelete: boolean | null;
        istrash: boolean | null;
        accountid: bigint;
        status: boolean | null;
        user_id: bigint;
        login_username: string | null;
        login_password: string | null;
        user_type: string | null;
        firstname: string | null;
        lastname: string | null;
        email: string | null;
        address: string | null;
        contact_country_code: number;
        contact_phone_number: string | null;
        parent_user_id: bigint;
    }[]>;
    trash: ({ ids }: {
        ids: number[];
    }) => Promise<{
        createdatetime: Date | null;
        createuserid: bigint;
        updatedatetime: Date | null;
        updateuserid: bigint;
        isdelete: boolean | null;
        istrash: boolean | null;
        accountid: bigint;
        status: boolean | null;
        user_id: bigint;
        login_username: string | null;
        login_password: string | null;
        user_type: string | null;
        firstname: string | null;
        lastname: string | null;
        email: string | null;
        address: string | null;
        contact_country_code: number;
        contact_phone_number: string | null;
        parent_user_id: bigint;
    }[]>;
    remove: ({ ids, where }: {
        ids?: number[];
        where?: Record<string, any>;
    }) => Promise<{
        createdatetime: Date | null;
        createuserid: bigint;
        updatedatetime: Date | null;
        updateuserid: bigint;
        isdelete: boolean | null;
        istrash: boolean | null;
        accountid: bigint;
        status: boolean | null;
        user_id: bigint;
        login_username: string | null;
        login_password: string | null;
        user_type: string | null;
        firstname: string | null;
        lastname: string | null;
        email: string | null;
        address: string | null;
        contact_country_code: number;
        contact_phone_number: string | null;
        parent_user_id: bigint;
    }[]>;
    raw: <T = any>(query: string, params?: any[]) => Promise<T[]>;
};
export {};
