import { OperationsBase } from "../../common/OperationsBase";
import { EntityListIterator } from "../../common/iterators/EntityListIterator";
import { Group, GroupCreate, GroupList, GroupMinimal, GroupMinimalList, GroupUpdate } from "../interfaces/Groups";
import { IGroupsClient } from "../interfaces/IGroupsClient";
import { AccessToken } from "@itwin/core-bentley";
import { PreferReturn } from "../../common/Common";
export declare class GroupsClient extends OperationsBase implements IGroupsClient {
    private _baseUrl;
    constructor(basePath?: string);
    createGroup(accessToken: AccessToken, mappingId: string, group: GroupCreate): Promise<Group>;
    deleteGroup(accessToken: AccessToken, mappingId: string, groupId: string): Promise<Response>;
    updateGroup(accessToken: AccessToken, mappingId: string, groupId: string, group: GroupUpdate): Promise<Group>;
    getGroup(accessToken: AccessToken, mappingId: string, groupId: string): Promise<Group>;
    getGroups(accessToken: AccessToken, mappingId: string, preferReturn?: PreferReturn.Minimal, top?: number): Promise<GroupMinimalList>;
    getGroups(accessToken: AccessToken, mappingId: string, preferReturn: PreferReturn.Representation, top?: number): Promise<GroupList>;
    getGroupsIterator(accessToken: AccessToken, mappingId: string, preferReturn?: PreferReturn.Minimal, top?: number): EntityListIterator<GroupMinimal>;
    getGroupsIterator(accessToken: AccessToken, mappingId: string, preferReturn: PreferReturn.Representation, top?: number): EntityListIterator<Group>;
    private fetchCollection;
    /**
     * Validates metadata entries.
     * @param entries
     */
    private validateMetadata;
    /**
     * Construct group endpoint with provided params.
     * @param mappingId Mapping Id.
     * @param groupId Group Id.
     * @param top Optional top number.
     * @returns url endpoint.
     */
    protected constructUrl(mappingId: string, groupId?: string, top?: number): string;
}
//# sourceMappingURL=GroupsClient.d.ts.map