import { AbstractResolvable, /* Constructable, */ IInjections } from 'metaf-resolvable'; export declare type IRequirements = any[]; export declare type State = new () => AbstractResolvable; export interface IState { /** * Resolvable state 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 state class to extend */ (injections: I, ...requirements: R): State; /** * Resolvable state 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 state class to extend */ (...requirements: R): State; } export declare const State: IState; //# sourceMappingURL=State.d.ts.map