import { ContextListOptions, ContextListResult } from '../browser.js';
import type { GroupSchema } from '../models/store/Group.js';
import { SdkBase, type SdkOptions } from './SdkBase.js';
export declare class GroupsSdk extends SdkBase {
    /**
     * Creates a new group in the specified organization.
     * @param oid The organization ID where the group will be created.
     * @param info The information about the group to create. See the `GroupSchema` interface for required fields.
     * @param request Optional SDK options, including authentication token.
     * @returns A promise that resolves to the created group.
     */
    create(oid: string, info: Partial<GroupSchema>, request?: SdkOptions): Promise<GroupSchema>;
    /**
     * Lists user groups in the specified organization.
     * If you want to list specific user groups, you can use the `uid` option to filter by user ID.
     * @param oid The organization ID to list groups from.
     * @param options Optional parameters for filtering, sorting, and pagination.
     * @param request Optional SDK options, including authentication token.
     * @returns A promise that resolves to a list of groups in the organization.
     */
    list(oid: string, options?: ContextListOptions, request?: SdkOptions): Promise<ContextListResult<GroupSchema>>;
    /**
     * Updates an existing group in the specified organization.
     * Note that this method support PUT requests only. Some fields are ignored by the API and are set automatically.
     * @param oid The organization ID where the group exists.
     * @param updated The updated information for the group. Must include the `key` of the group to update.
     * @param request Optional SDK options, including authentication token.
     * @returns A promise that resolves to the updated group.
     */
    update(oid: string, updated: GroupSchema, request?: SdkOptions): Promise<GroupSchema>;
    /**
     * Deletes a group in the specified organization.
     * The groups support soft deletion, meaning that the group is not immediately removed from the database.
     * @param oid The organization ID where the group exists.
     * @param gid The group ID to delete.
     * @param request Optional SDK options, including authentication token.
     * @returns A promise that resolves when the group is deleted.
     */
    delete(oid: string, gid: string, request?: SdkOptions): Promise<void>;
    addUsers(oid: string, gid: string, uids: string[], request?: SdkOptions): Promise<GroupSchema>;
    removeUsers(oid: string, gid: string, uids: string[], request?: SdkOptions): Promise<GroupSchema>;
}
//# sourceMappingURL=GroupsSdk.d.ts.map