import { DependencyNode } from '../index'; import { GraphLookup } from '../index'; import { LooseGraph } from '../index'; import { Result } from '../index'; import { StrictGraph } from '../index'; import { Proxify } from './proxify'; export declare type HandleCircular = Proxify | false; export declare type Options = { failOnClobber: boolean; handleCircular: HandleCircular; postProcess: (node: DependencyNode, value: any) => any; }; export declare type TreeNode = { name: string; children: TreeNode[]; }; export declare type OnFulfill = ((some: any) => any) | undefined; export declare type OnReject = (some: any) => any; export declare type KeyedResult = { [key: string]: any; }; export declare type Container = { merge(otherGraph: LooseGraph): Result; mergeStrict(otherGraph: StrictGraph): Result; get(key: string): Promise; getSome(...keys: string[]): Promise; getAll(): Promise; getTree(): TreeNode; getGraph(): StrictGraph; then(onFulfill: OnFulfill, onReject?: OnReject): Promise; catch(onReject: OnReject): Promise; setOptions(options: Partial): Container; }; export default function containerFactory(graph?: StrictGraph, libOptions?: Partial, graphLookup?: GraphLookup): Container;