import { AbstractResolvable, IInjections } from 'metaf-resolvable'; import React from 'react'; import { IRequirements } from './Resolver'; export declare type Component = new
(props: Readonly
) => AbstractResolvable* ISyncDependencies< */ I> & React.Component
;
export interface IComponent {
/**
* Resolvable component factory
* @description creates new class with resolved `injections` as `dependencies` and
* inform `ApplicationRoot` that it should fit specific `requirements`
* @template I type of injections' dictionary
* @template R type of requirements' tuple
* @param injections dependencies that will be used by component directly
* @param requirements dependencies that should exist in code that use this component
* @returns react `Component` class to extend
*/
(injections: I, ...requirements: R): Component;
/**
* Resolvable component factory
* @description creates new class without `dependencies` but with
* informing `ApplicationRoot` that it should fit specific `requirements`
* @template R type of requirements' tuple
* @param requirements dependencies that should exist in code that use this class
* @returns component class to extend
*/