import type { RequestOverrides } from '../http.js';
import type { AddUserToGroupParams, Group, GroupCreateParams, GroupDeleteParams, GroupGetParams, GroupListParams, GroupRestoreParams, RemoveUserFromGroupParams, User } from '../types.js';
import { BaseResource } from './base.js';
export declare class Groups extends BaseResource {
    list(_params?: GroupListParams, overrides?: RequestOverrides): Promise<Group[]>;
    get(params: GroupGetParams, overrides?: RequestOverrides): Promise<Group>;
    create(params: GroupCreateParams, overrides?: RequestOverrides): Promise<Group>;
    /** Deletes a group. Throws SplitwiseConstraintError if the API refuses. */
    delete(params: GroupDeleteParams, overrides?: RequestOverrides): Promise<void>;
    /** Restores a previously-deleted group. Throws on failure. */
    restore(params: GroupRestoreParams, overrides?: RequestOverrides): Promise<void>;
    /**
     * Adds a user to a group. Returns the added user object (useful when
     * adding by email -- the response gives you back the assigned user_id).
     * Throws SplitwiseConstraintError if the API refuses (e.g. unknown user).
     */
    addUser(params: AddUserToGroupParams, overrides?: RequestOverrides): Promise<User>;
    /**
     * Removes a user from a group. Throws SplitwiseConstraintError if the API
     * refuses (e.g. the user has unsettled debts in this group).
     */
    removeUser(params: RemoveUserFromGroupParams, overrides?: RequestOverrides): Promise<void>;
}
//# sourceMappingURL=groups.d.ts.map