import { IGroup, IGroupRights, ISaveGroupOptions, ISaveGroupResponse, ISaveRightsOptions } from './Groups.models';
import { IApiPayload, IApiSuccess, IDataFetcherResponse, IDataTableQuery } from '../../api.models';
import { IUserToGroup } from '../User';

export declare const groupsApi: {
    /** List groups. ADT request */
    listGroups(query?: IDataTableQuery): Promise<IDataFetcherResponse<IGroup>>;
    /** Load groups */
    loadGroups(groupId: number): Promise<IApiPayload<IGroup>>;
    /** Save rights of group */
    saveRights(query: ISaveRightsOptions): Promise<IGroupRights>;
    /** List rights of group */
    listRights(groupId: number): Promise<IGroupRights>;
    /** Get mapping from group to users */
    groupToUsers(query: IDataTableQuery): Promise<IDataFetcherResponse<IApiPayload<IUserToGroup[]>>>;
    /** Delete group */
    deleteGroup(groupId: number): Promise<IApiSuccess>;
    /** Save group */
    saveGroup(query: ISaveGroupOptions): Promise<ISaveGroupResponse>;
};
