react-model-view-viewmodel
Version:
A library for developing ReactJS applications using Model-View-ViewModel, inspired by .NET.
165 lines (164 loc) • 6.84 kB
TypeScript
import type { ResolvableSimpleDependency, ComplexDependency } from './IDependencyResolver';
/**
* Resolves the requested dependency using the resolver in the current context.
*
* @template T The dependency type to resolve.
*
* @param dependency The dependency to resolve.
*
* @returns Returns the resolved dependency.
*
* @see {@link IDependencyResolver}
* @see {@link IDependencyContainer}
* @see {@link ResolvableSimpleDependency}
* @see {@link useDependencyResolver}
* @see {@link useViewModelDependency}
* @see {@link DependencyResolverProvider}
* @see {@link DependencyResolverScope}
*/
export declare function useDependency<T>(dependency: ResolvableSimpleDependency<T>): T;
/**
* @ignore
* Resolves the requested dependency using the resolver in the current context.
*
* @template T The dependency type to resolve.
*
* @param dependency The dependency to resolve.
*
* @returns Returns the resolved dependency.
*
* @see {@link IDependencyResolver}
* @see {@link IDependencyContainer}
* @see {@link ResolvableSimpleDependency}
* @see {@link useDependencyResolver}
* @see {@link useViewModelDependency}
* @see {@link DependencyResolverProvider}
* @see {@link DependencyResolverScope}
*/
export declare function useDependency<T>(dependency: ResolvableSimpleDependency<T> | null): T | null;
/**
* Resolves the requested dependency using the resolver in the current context.
*
* @template T The dependency type to resolve.
*
* @param dependency The dependency to resolve.
*
* @returns Returns the resolved dependency.
*
* @see {@link IDependencyResolver}
* @see {@link IDependencyContainer}
* @see {@link ResolvableSimpleDependency}
* @see {@link useDependencyResolver}
* @see {@link useViewModelDependency}
* @see {@link DependencyResolverProvider}
* @see {@link DependencyResolverScope}
*
* @ignore This is overload is not relevant for wiki documentation.
*/
export declare function useDependency<T>(dependency: ResolvableSimpleDependency<T> | undefined): T | undefined;
/**
* Resolves the requested dependency using the resolver in the current context.
*
* @template T The dependency type to resolve.
*
* @param dependency The dependency to resolve.
*
* @returns Returns the resolved dependency.
*
* @see {@link IDependencyResolver}
* @see {@link IDependencyContainer}
* @see {@link ResolvableSimpleDependency}
* @see {@link useDependencyResolver}
* @see {@link useViewModelDependency}
* @see {@link DependencyResolverProvider}
* @see {@link DependencyResolverScope}
*
* @ignore This is overload is not relevant for wiki documentation.
*/
export declare function useDependency<T>(dependency: ResolvableSimpleDependency<T> | null | undefined): T | null | undefined;
/**
* Resolves the requested complex dependency using the resovler in the current context.
*
* @template T The dependency type to resolve.
* @template TAdditional A tuple representing additional parameters required by the constructor.
*
* @param dependency The complex dependency to resolve.
* @param additionalDependencies Additional constructor arguments which also act as dependencies, if one of them changes the dependency will be reinitialized.
*
* @returns Returns the resolved dependency.
*
* @see {@link IDependencyResolver}
* @see {@link IDependencyContainer}
* @see {@link ResolvableSimpleDependency}
* @see {@link useDependencyResolver}
* @see {@link useViewModelDependency}
* @see {@link DependencyResolverProvider}
* @see {@link DependencyResolverScope}
*/
export declare function useDependency<T, TAdditional extends readonly any[]>(dependency: ComplexDependency<T, TAdditional>, additionalDependencies: TAdditional): T;
/**
* Resolves the requested complex dependency using the resovler in the current context.
*
* @template T The dependency type to resolve.
* @template TAdditional A tuple representing additional parameters required by the constructor.
*
* @param dependency The complex dependency to resolve.
* @param additionalDependencies Additional constructor arguments which also act as dependencies, if one of them changes the dependency will be reinitialized.
*
* @returns Returns the resolved dependency.
*
* @see {@link IDependencyResolver}
* @see {@link IDependencyContainer}
* @see {@link ResolvableSimpleDependency}
* @see {@link useDependencyResolver}
* @see {@link useViewModelDependency}
* @see {@link DependencyResolverProvider}
* @see {@link DependencyResolverScope}
*
* @ignore This is overload is not relevant for wiki documentation.
*/
export declare function useDependency<T, TAdditional extends readonly any[]>(dependency: ComplexDependency<T, TAdditional> | null, additionalDependencies: TAdditional): T | null;
/**
* Resolves the requested complex dependency using the resovler in the current context.
*
* @template T The dependency type to resolve.
* @template TAdditional A tuple representing additional parameters required by the constructor.
*
* @param dependency The complex dependency to resolve.
* @param additionalDependencies Additional constructor arguments which also act as dependencies, if one of them changes the dependency will be reinitialized.
*
* @returns Returns the resolved dependency.
*
* @see {@link IDependencyResolver}
* @see {@link IDependencyContainer}
* @see {@link ResolvableSimpleDependency}
* @see {@link useDependencyResolver}
* @see {@link useViewModelDependency}
* @see {@link DependencyResolverProvider}
* @see {@link DependencyResolverScope}
*
* @ignore This is overload is not relevant for wiki documentation.
*/
export declare function useDependency<T, TAdditional extends readonly any[]>(dependency: ComplexDependency<T, TAdditional> | undefined, additionalDependencies: TAdditional): T | undefined;
/**
* Resolves the requested complex dependency using the resovler in the current context.
*
* @template T The dependency type to resolve.
* @template TAdditional A tuple representing additional parameters required by the constructor.
*
* @param dependency The complex dependency to resolve.
* @param additionalDependencies Additional constructor arguments which also act as dependencies, if one of them changes the dependency will be reinitialized.
*
* @returns Returns the resolved dependency.
*
* @see {@link IDependencyResolver}
* @see {@link IDependencyContainer}
* @see {@link ResolvableSimpleDependency}
* @see {@link useDependencyResolver}
* @see {@link useViewModelDependency}
* @see {@link DependencyResolverProvider}
* @see {@link DependencyResolverScope}
*
* @ignore This is overload is not relevant for wiki documentation.
*/
export declare function useDependency<T, TAdditional extends readonly any[]>(dependency: ComplexDependency<T, TAdditional> | null | undefined, additionalDependencies: TAdditional): T | null | undefined;