import type { Group, DirectorySyncResponse, Directory, DirectorySyncGroupMember, DirectorySyncRequest, EventCallback, IDirectoryConfig, IUsers, IGroups } from '../../typings';
interface DirectoryGroupsParams {
    directories: IDirectoryConfig;
    users: IUsers;
    groups: IGroups;
}
export declare class DirectoryGroups {
    private directories;
    private users;
    private groups;
    private callback;
    constructor({ directories, users, groups }: DirectoryGroupsParams);
    create(directory: Directory, body: any): Promise<DirectorySyncResponse>;
    get(group: Group): Promise<DirectorySyncResponse>;
    getAll(queryParams: {
        filter?: string;
        directoryId: string;
    }): Promise<DirectorySyncResponse>;
    patch(directory: Directory, group: Group, body: any): Promise<DirectorySyncResponse>;
    update(directory: Directory, group: Group, body: any): Promise<DirectorySyncResponse>;
    delete(directory: Directory, group: Group): Promise<DirectorySyncResponse>;
    updateDisplayName(directory: Directory, group: Group, body: any): Promise<Group>;
    addGroupMembers(directory: Directory, group: Group, members: DirectorySyncGroupMember[] | undefined): Promise<void>;
    removeGroupMembers(directory: Directory, group: Group, members: DirectorySyncGroupMember[] | undefined): Promise<void>;
    private respondWithError;
    handleRequest(request: DirectorySyncRequest, callback?: EventCallback): Promise<DirectorySyncResponse>;
}
export {};
