import React from 'react';
import AuthorizedRoute, { authority } from './AuthorizedRoute';
export type IReactComponent
 =
  | React.StatelessComponent
  | React.ComponentClass
  | React.ClassicComponentClass
;
type Secured = (
  authority: authority,
  error?: React.ReactNode
) => (target: T) => T;
type check = (
  authority: authority,
  target: T,
  Exception: S
) => T | S;
export interface IAuthorizedProps {
  authority: authority;
  noMatch?: React.ReactNode;
}
export class Authorized extends React.Component {
  public static Secured: Secured;
  public static AuthorizedRoute: typeof AuthorizedRoute;
  public static check: check;
}
declare function renderAuthorize(currentAuthority: string): typeof Authorized;
export default renderAuthorize;