import { UserAggregate } from '../../Domain/User/UserAggregate';
import { IUserRepository } from '../../Domain/IRepository/IUserRepository';
export declare class UserRepository implements IUserRepository {
    private repo;
    constructor();
    create(user: Partial<UserAggregate>): Promise<Partial<UserAggregate> & UserAggregate>;
    findByPage(from: number, to: number): Promise<{
        users: UserAggregate[];
        totalCount: number;
    }>;
    findByPageIncludingDeleted(from: number, to: number): Promise<{
        users: UserAggregate[];
        totalCount: number;
    }>;
    findById(id: string): Promise<UserAggregate | null>;
    findByIdIncludingDeleted(id: string): Promise<UserAggregate | null>;
    findByUsername(username: string): Promise<UserAggregate | null>;
    findByEmail(email: string): Promise<UserAggregate | null>;
    findByToken(token: string): Promise<UserAggregate | null>;
    update(id: string, update: Partial<UserAggregate>): Promise<UserAggregate | null>;
    delete(id: string): Promise<import("typeorm").DeleteResult>;
    softDelete(id: string): Promise<UserAggregate | null>;
    deactivate(id: string): Promise<UserAggregate | null>;
    search(query: string, limit?: number, offset?: number): Promise<{
        users: UserAggregate[];
        totalCount: number;
    }>;
    searchIncludingDeleted(query: string, limit?: number, offset?: number): Promise<{
        users: UserAggregate[];
        totalCount: number;
    }>;
}
//# sourceMappingURL=UserRepository.d.ts.map