import type { IRole } from "../entities";
import type { IUser } from "../entities/User";
import type { IQueryFilter, IQueryOptions, IQueryPagination } from "../interfaces";
import type { Ownership } from "../interfaces/SystemTypes";
import BaseService from "./BaseService";
export interface UserJoinWorkspaceParams {
    /**
     * User ID
     */
    userId: string;
    /**
     * Workspace's ID or slug
     */
    workspace: string;
}
export declare class UserService extends BaseService<IUser> {
    constructor(ownership?: Ownership);
    find(filter?: IQueryFilter<IUser>, options?: IQueryOptions & IQueryPagination, pagination?: IQueryPagination): Promise<IUser[]>;
    findOne(filter?: IQueryFilter<IUser>, options?: IQueryOptions & IQueryPagination): Promise<IUser>;
    create(data: any, options?: IQueryOptions): Promise<IUser>;
    update(filter: IQueryFilter<IUser>, data: IUser | any, options?: IQueryOptions): Promise<IUser[]>;
    assignRole(role: IRole, user: IUser, options?: {
        makeActive?: boolean;
    }): Promise<{
        user: IUser;
        role: IRole;
    }>;
    assignRoleByRoleID(roleId: any, user: IUser, options?: {
        makeActive?: boolean;
    }): Promise<{
        user: IUser;
        role: IRole;
    }>;
    assignRoleByUserID(role: IRole, userId: any, options?: {
        makeActive?: boolean;
    }): Promise<{
        user: IUser;
        role: IRole;
    }>;
    assignRoleByID(roleId: any, userId: any, options?: {
        makeActive?: boolean;
    }): Promise<{
        user: IUser;
        role: IRole;
    }>;
    updateAccessPermissions(userSlug: string, resource: {
        [name: string]: string;
    }): Promise<IUser>;
    joinWorkspace(data: UserJoinWorkspaceParams, options?: IQueryOptions): Promise<IUser>;
}
//# sourceMappingURL=UserService.d.ts.map