import { AxiosResponse } from 'axios';
import { User } from './user';
import { Config } from './config';
import Request from './request';
export interface Group {
    owner: string;
    name: string;
    createdTime: string;
    updatedTime?: string;
    displayName: string;
    manager?: string;
    contactEmail?: string;
    type?: string;
    parentId?: string;
    isTopGroup?: boolean;
    users?: User[];
    title?: string;
    key?: string;
    children?: Group[];
    isEnabled?: boolean;
}
export declare class GroupSDK {
    private config;
    private readonly request;
    constructor(config: Config, request: Request);
    getGroups(withTree?: boolean): Promise<AxiosResponse<{
        data: Group[];
    }, any>>;
    getGroup(id: string): Promise<AxiosResponse<{
        data: Group;
    }, any>>;
    modifyGroup(method: string, group: Group): Promise<AxiosResponse<Record<string, unknown>, any>>;
    addGroup(group: Group): Promise<AxiosResponse<Record<string, unknown>, any>>;
    updateGroup(group: Group): Promise<AxiosResponse<Record<string, unknown>, any>>;
    deleteGroup(group: Group): Promise<AxiosResponse<Record<string, unknown>, any>>;
}
