import * as R from 'fp-ts/lib/Reader'; import * as O from 'fp-ts/lib/Option'; import * as E from 'fp-ts/lib/Eq'; import { Ord } from 'fp-ts/lib/Ord'; import { ContextToken } from './context.token.factory'; export declare const ordContextToken: Ord>; export declare const setoidContextToken: E.Eq; export interface Context extends Map { } export interface ContextProvider { (token: ContextToken): O.Option; } export interface ContextReader extends R.Reader { } export declare enum ContextReaderTag { EAGER_READER = 0, LAZY_READER = 1 } export interface ContextEagerReader { tag: ContextReaderTag.EAGER_READER; eval: ContextReader; } export interface ContextLazyReader { tag: ContextReaderTag.LAZY_READER; eval: () => ContextReader; } export declare type ContextDependency = ContextEagerReader | ContextLazyReader; export interface BoundDependency { token: ContextToken; dependency: U; } export declare const DerivedContextToken: { _id: string; _T: Context; name?: string | undefined; }; export declare const createContext: () => Map; export declare const register: (boundDependency: BoundDependency) => (context: Context) => Context; export declare const registerAll: (boundDependencies: BoundDependency[]) => (context: Context) => Context; /** * Unregisters given token from the context * @since v3.4.0 */ export declare const unregister: (token: ContextToken) => (context: Context) => Context; /** * Resolves eager dependencies within the context * @since v2.0.0 */ export declare const resolve: (context: Context) => Promise; /** * Lookup the dependency for a token in a `Context` * @since v2.0.0 */ export declare const lookup: (context: Context) => (token: ContextToken) => O.Option; /** * Binds context token to a lazy dependency. * @since v3.0.0 */ export declare const bindLazilyTo: (token: ContextToken) => (dependency: U) => BoundDependency; /** * Binds context token to a eager dependency. * @since v3.0.0 */ export declare const bindEagerlyTo: (token: ContextToken) => (dependency: U) => BoundDependency; /** * An alias to `bindLazilyTo`. * Binds context token to a lazy dependency. * @since v3.0.0 */ export declare const bindTo: (token: ContextToken) => (dependency: U) => BoundDependency; export declare const reader: R.Reader(token: ContextToken) => O.Option>; //# sourceMappingURL=context.d.ts.map