import React from "react"; import type { NavigationGroupItem, NavigationModuleItem } from "../../util/AdminNavigationUtil"; export interface Props { navigationGroups: Array>; boundPermissionsCalculator?: (permissions: Feature) => Feature[]; featureValue: Feature[]; onFeatureChange: (value: Feature[]) => void; fieldValue?: Field[]; onFieldChange?: (value: Field[]) => void; featurePermissionTranslator: (permission: Feature) => string; fieldPermissionTranslator?: (permission: Field) => string; editable: boolean; extraPermissions?: Feature[]; moduleNameWidth?: number; alwaysExpand?: boolean; } export declare class AdminPermissionSelector extends React.PureComponent> { static displayName: string; private readonly navigationModuleItemContainerStyle; private readonly progressStyle; private readonly permissionCheckboxStyle; private readonly popoverStyle; private readonly descriptionItemStyle; private readonly checkboxStyle; triggerChangeEvent: (changedPermissions: Array, isChecked: boolean, isFieldPermission: boolean) => void; getNavigationModuleFeaturePermissions: (module: NavigationModuleItem) => Feature[]; getNavigationModuleFieldPermission: (module: NavigationModuleItem) => Field[]; getNavigationGroupFeaturePermissions: (groupItem: NavigationGroupItem) => Feature[]; getNavigationGroupFieldPermissions: (groupItem: NavigationGroupItem) => Field[]; recursivelyGetBoundPermissions(permission: Feature | Field, includeSelf?: boolean): Feature[]; onPermissionChange: (checked: boolean, permission: Feature | Field, isFieldPermission: boolean) => void; renderExtraPermission: (extraPermissions: Feature[]) => React.JSX.Element; /** * * @param permissions * type here is not accurate * Feature[] | Field[] will cause TS error * https://github.com/microsoft/TypeScript/issues/7294 * https://github.com/microsoft/TypeScript/issues/36390 */ renderPermissionGroup: (permissions: (Feature | Field)[], isFieldPermission: boolean) => React.JSX.Element | null; renderNavigationModule: (module: NavigationModuleItem) => React.JSX.Element | null; renderNavigationGroup: (groupItem: NavigationGroupItem) => React.JSX.Element | undefined; render(): React.JSX.Element; }