import type { GroupMembership, GroupPermissions } from '@mattermost/types/groups';
import type { Role } from '@mattermost/types/roles';
import type { GlobalState } from '@mattermost/types/store';
import type { PermissionsOptions } from 'mattermost-redux/selectors/entities/roles_helpers';
export declare const getMySystemPermissions: (state: GlobalState) => Set<string>;
export declare const getMySystemRoles: (state: GlobalState) => Set<string>;
export declare const getRoles: (state: GlobalState) => Record<string, Role>;
export declare const haveISystemPermission: (state: GlobalState, options: PermissionsOptions) => boolean;
export declare const getGroupMemberships: (state: GlobalState) => Record<string, GroupMembership>;
export declare const getMyGroupRoles: (state: GlobalState) => Record<string, Set<string>>;
/**
 * Returns a map of permissions, keyed by group id, for all groups that are mentionable and not deleted.
 */
export declare const getGroupListPermissions: (state: GlobalState) => Record<string, GroupPermissions>;
export declare const getMyTeamRoles: (state: GlobalState) => Record<string, Set<string>>;
export declare function getMyChannelRoles(state: GlobalState): Record<string, Set<string>>;
export declare const getRolesById: (state: GlobalState) => Record<string, Role>;
export declare function haveITeamPermission(state: GlobalState, teamId: string | undefined, permission: string): boolean;
export declare const haveIGroupPermission: (state: GlobalState, groupID: string, permission: string) => boolean;
export declare function haveIChannelPermission(state: GlobalState, teamId: string | undefined, channelId: string | undefined, permission: string): boolean;
export declare function haveICurrentTeamPermission(state: GlobalState, permission: string): boolean;
export declare function haveICurrentChannelPermission(state: GlobalState, permission: string): boolean;
