import type { UserRole, UserStatus } from '../../shared/types/index.js';
export declare const usersRepository: {
    findById(id: string): Promise<(import("mongoose").Document<unknown, {}, import("../../shared/models/User.model.js").IUser, {}, {}> & import("../../shared/models/User.model.js").IUser & Required<{
        _id: import("mongoose").Types.ObjectId;
    }> & {
        __v: number;
    }) | null>;
    findMany(filters: {
        role?: UserRole;
        status?: UserStatus;
        page?: number;
        limit?: number;
    }): Promise<{
        items: (import("mongoose").FlattenMaps<import("../../shared/models/User.model.js").IUser> & Required<{
            _id: import("mongoose").Types.ObjectId;
        }> & {
            __v: number;
        })[];
        total: number;
        page: number;
        limit: number;
    }>;
    create(data: {
        name: string;
        email: string;
        password: string;
        role: UserRole;
    }): Promise<import("mongoose").Document<unknown, {}, import("../../shared/models/User.model.js").IUser, {}, {}> & import("../../shared/models/User.model.js").IUser & Required<{
        _id: import("mongoose").Types.ObjectId;
    }> & {
        __v: number;
    }>;
    update(id: string, data: Partial<{
        name: string;
        status: UserStatus;
    }>): Promise<(import("mongoose").Document<unknown, {}, import("../../shared/models/User.model.js").IUser, {}, {}> & import("../../shared/models/User.model.js").IUser & Required<{
        _id: import("mongoose").Types.ObjectId;
    }> & {
        __v: number;
    }) | null>;
    delete(id: string): Promise<(import("mongoose").Document<unknown, {}, import("../../shared/models/User.model.js").IUser, {}, {}> & import("../../shared/models/User.model.js").IUser & Required<{
        _id: import("mongoose").Types.ObjectId;
    }> & {
        __v: number;
    }) | null>;
};
//# sourceMappingURL=users.repository.d.ts.map