import * as React from 'react'; import { IUserServiceConstructor, IApiServiceRuntimeConfig, IApiServiceConstructor, IActionsCreatorServiceConstructor, RetaxConsumer, } from 'retax-core'; export interface IInjectionMap { keys: string[]; serviceId: Symbol; } export interface IApiEnhancmentConfig extends IApiServiceRuntimeConfig {} export interface IActionsCreatorEnhancmentConfig { apis?: IInjectionMap; actionsCreators?: IInjectionMap; } export interface IComponentEnhancmentConfig { actionsCreators?: IInjectionMap; } export interface IEnhancer { extendApi( Target: IApiServiceConstructor, config: IApiEnhancmentConfig ): IApiServiceConstructor; extendActionsCreator( Target: IActionsCreatorServiceConstructor, config: IActionsCreatorEnhancmentConfig ): IActionsCreatorServiceConstructor; extendComponent( ComposedComponent: React.ComponentClass, config: IComponentEnhancmentConfig ): typeof RetaxConsumer; } export interface ISplitEntriesReturn { keys: string[]; values: IUserServiceConstructor[]; }