import { UserAggregate } from '../User/UserAggregate';
export interface IUserRepository {
    create(user: Partial<UserAggregate>): Promise<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>;
    search(query: string, limit?: number, offset?: number): Promise<{
        users: UserAggregate[];
        totalCount: number;
    }>;
    searchIncludingDeleted(query: string, limit?: number, offset?: number): Promise<{
        users: UserAggregate[];
        totalCount: number;
    }>;
    update(id: string, update: Partial<UserAggregate>): Promise<UserAggregate | null>;
    delete(id: string): Promise<any>;
    softDelete(id: string): Promise<UserAggregate | null>;
    deactivate(id: string): Promise<UserAggregate | null>;
}
//# sourceMappingURL=IUserRepository.d.ts.map