import { ReactNode, ComponentType } from 'react';
import type { TNormalizedPermissions, TNormalizedActionRights, TNormalizedDataFences } from '@commercetools-frontend/application-shell-connectors';
type TPermissionName = string;
type TActionRightName = string;
type TActionRightGroup = string;
type TDemandedActionRight = {
    group: TActionRightGroup;
    name: TActionRightName;
};
type TDemandedDataFence = {
    group: string;
    name: string;
    type: string;
};
type TSelectDataFenceData = (demandedDataFenceWithActualValues: TDemandedDataFence & {
    actualDataFenceValues: string[];
}) => string[] | null;
type TProjectPermissions = {
    permissions: TNormalizedPermissions | null;
    actionRights: TNormalizedActionRights | null;
    dataFences: TNormalizedDataFences | null;
};
type TRenderProp = (props: {
    isAuthorized: boolean;
}) => ReactNode;
type Props = {
    shouldMatchSomePermissions?: boolean;
    permissions: TPermissionName[];
    actionRights?: TDemandedActionRight[];
    dataFences?: TDemandedDataFence[];
    selectDataFenceData?: TSelectDataFenceData;
    unauthorizedComponent?: ComponentType;
    projectPermissions?: TProjectPermissions;
    render?: TRenderProp;
    children?: TRenderProp | ReactNode;
};
declare const RestrictedByPermissions: {
    (props: Props): import("@emotion/react/jsx-runtime").JSX.Element;
    displayName: string;
};
export default RestrictedByPermissions;
