/// <reference types="bluebird" />
import * as Promise from 'bluebird';
import { HudAiCreateAttributes, HudAiListAttributes, HudAiUpdateAttributes, Resource } from '../utils/Resource';
import { RequestManager } from '../RequestManager';
import { UserCompanyGroup, UserCompanyGroupListElement } from '../entities';
export interface UserCompanyGroupListAttributes extends HudAiListAttributes {
    userId?: string;
}
export interface UserCompanyGroupCreateAttributes extends HudAiCreateAttributes {
    userId?: string;
    name: string;
}
export interface UserCompanyGroupUpdateAttributes extends HudAiUpdateAttributes {
    userId?: string;
    name: string;
}
export interface UserCompanyGroupUpdateCompaniesAttributes {
    id: string;
    companyId: string;
}
export declare class UserCompanyGroupResource extends Resource<UserCompanyGroup, UserCompanyGroupListAttributes, UserCompanyGroupCreateAttributes, UserCompanyGroupUpdateAttributes> {
    constructor(requestManager: RequestManager);
    list(listArgs: UserCompanyGroupListAttributes): Promise<{
        count: number;
        rows: UserCompanyGroupListElement[];
    }>;
    create(createArgs: UserCompanyGroupCreateAttributes): Promise<UserCompanyGroup>;
    get(id: string): Promise<UserCompanyGroup>;
    update(id: string, updateArgs: UserCompanyGroupUpdateAttributes): Promise<UserCompanyGroup>;
    del(id: string): Promise<void>;
    destroy(id: string): Promise<void>;
    addCompany(addArgs: UserCompanyGroupUpdateCompaniesAttributes): Promise<UserCompanyGroup>;
    removeCompany(destroyArgs: UserCompanyGroupUpdateCompaniesAttributes): Promise<UserCompanyGroup>;
}
