import { Prisma } from "../generated/prisma/client.js";
export declare class UserRepository {
    findByEmail(email: string): Promise<({
        role: {
            name: string;
            id: bigint;
            createdAt: Date;
            updatedAt: Date;
        };
    } & {
        name: string;
        id: bigint;
        email: string;
        status: boolean;
        createdAt: Date;
        updatedAt: Date;
        mobileNo: string | null;
        password: string;
        roleId: bigint;
        profile: string | null;
    }) | null>;
    findByMobileNo(mobileNo: string): Promise<({
        role: {
            name: string;
            id: bigint;
            createdAt: Date;
            updatedAt: Date;
        };
    } & {
        name: string;
        id: bigint;
        email: string;
        status: boolean;
        createdAt: Date;
        updatedAt: Date;
        mobileNo: string | null;
        password: string;
        roleId: bigint;
        profile: string | null;
    }) | null>;
    create(data: Prisma.UserUncheckedCreateInput): Promise<{
        name: string;
        id: bigint;
        email: string;
        status: boolean;
        createdAt: Date;
        updatedAt: Date;
        mobileNo: string | null;
        password: string;
        roleId: bigint;
        profile: string | null;
    }>;
    findAll(skip?: number, take?: number, search?: string, roleId?: bigint, status?: boolean): Promise<{
        items: ({
            role: {
                name: string;
                id: bigint;
                createdAt: Date;
                updatedAt: Date;
            };
        } & {
            name: string;
            id: bigint;
            email: string;
            status: boolean;
            createdAt: Date;
            updatedAt: Date;
            mobileNo: string | null;
            password: string;
            roleId: bigint;
            profile: string | null;
        })[];
        total: number;
    }>;
    findById(id: bigint): Promise<({
        role: {
            name: string;
            id: bigint;
            createdAt: Date;
            updatedAt: Date;
        };
    } & {
        name: string;
        id: bigint;
        email: string;
        status: boolean;
        createdAt: Date;
        updatedAt: Date;
        mobileNo: string | null;
        password: string;
        roleId: bigint;
        profile: string | null;
    }) | null>;
    update(id: bigint, data: Prisma.UserUncheckedUpdateInput): Promise<{
        name: string;
        id: bigint;
        email: string;
        status: boolean;
        createdAt: Date;
        updatedAt: Date;
        mobileNo: string | null;
        password: string;
        roleId: bigint;
        profile: string | null;
    }>;
    getRoles(): Promise<{
        name: string;
        id: bigint;
    }[]>;
    countByRoleId(roleId: bigint, excludeUserId?: bigint, onlyActive?: boolean): Promise<number>;
}
//# sourceMappingURL=UserRepository.d.ts.map