import API, { CountingResponse } from "./api.js";
import { IMethodParams } from "./../Session/Session.js";
import { UserObject } from "./users.js";
declare type MembersFilter = "friends" | "unsure" | "managers" | "donut";
declare type MembersSort = "id_asc" | "id_desc" | "time_asc" | "time_desc";
interface GetMembersAdditionalParams extends IMethodParams {
    count?: number;
    offset?: number;
    fields?: string[];
    filter?: MembersFilter;
    sort?: MembersSort;
}
interface GetMembersAdditionalParamsWithFields extends GetMembersAdditionalParams {
    fields: string[];
}
interface IsMemberInfo {
    member: 0 | 1;
    user_id: number;
    request?: 0 | 1;
    invitation?: 0 | 1;
    can_invite?: 0 | 1;
    can_recall?: 0 | 1;
}
declare class GroupsAPI extends API {
    private api_name;
    getMembers(group_id: number, params: GetMembersAdditionalParamsWithFields): Promise<CountingResponse<UserObject>>;
    getMembers(group_id: number, params?: GetMembersAdditionalParams): Promise<CountingResponse<number>>;
    isMembers(group_id: number, user_ids: number, extended: true): Promise<IsMemberInfo>;
    isMembers(group_id: number, user_ids: number, extended?: false): Promise<number>;
    isMembers(group_id: number, user_ids: number[], extended: true): Promise<IsMemberInfo[]>;
    isMembers(group_id: number, user_ids: number[], extended?: false): Promise<number[]>;
    /**
     * WARNING! This method uses the getMembers method and goes through ALL users of the group.
     */
    isDonut(group_id: number, users_id: number): Promise<boolean>;
}
export default GroupsAPI;
