import { GroupMembership, IGroup, IUser } from "@esri/arcgis-rest-portal";
import { IDiscussionsUser } from "../types";
type Privilege = "portal:admin:deleteItems" | "portal:admin:deleteGroups" | "portal:admin:shareToOrg" | "portal:admin:shareToPublic" | "portal:admin:updateItems" | "portal:admin:updateGroups" | "portal:admin:viewItems" | "portal:admin:viewGroups" | "portal:user:createItem" | "portal:user:createGroup" | "portal:user:shareToGroup" | "portal:user:shareToOrg" | "portal:user:shareToPublic" | "portal:user:viewOrgItems";
/**
 * Utility that returns reducer function that filters a user's groups
 * by membership type and produces an array of group id's
 *
 *
 * @export
 * @param {GroupMembership[]} membershipTypes
 * @return {*}  {((memo: string[], group: IGroup) => string[])}
 */
export declare function reduceByGroupMembership(membershipTypes: GroupMembership[]): (memo: string[], group: IGroup) => string[];
/**
 * Utility that checks if a user is a portal org admin, or an org_admin by a platform role
 *
 * @export
 * @param {IUser} user
 * @return {*}  {boolean}
 */
export declare function isOrgAdmin(user: IUser): boolean;
export declare function isUserInOrg(user: IUser | IDiscussionsUser, orgId: string): boolean;
export declare function isOrgAdminInOrg(user: IUser, orgId: string): boolean;
export declare function userHasPrivilege(user: IUser | IDiscussionsUser, privilege: Privilege): boolean;
export declare function userHasPrivileges(user: IUser | IDiscussionsUser, privileges: Privilege[]): boolean;
export {};
