import { ResolutionCondition } from '../types'; import { TokenType, TokenValue } from '../pointers'; import { DependencyModule } from './DependencyModule'; export declare class Container extends DependencyModule { private snapshot; /** * @description * Captures (snapshots) the current container state. * * @link https://brandi.js.org/reference/container#capture */ capture?(): void; /** * @description * Restores the captured container state. * * @link https://brandi.js.org/reference/container#restore */ restore?(): void; constructor(); /** * @description * Sets the parent container. * * @param container - a `Container` or `null` that will be set as the parent container. * @returns `this`. * * @link https://brandi.js.org/reference/container#extendcontainer */ extend(container: Container | null): this; /** * @description * Creates an unlinked clone of the container. * * @returns `Container`. * * @link https://brandi.js.org/reference/container#clone */ clone(): Container; /** * @description * Gets a dependency bound to the token. * * @param token - token for which a dependence will be got. * @returns `TokenType`. * * @link https://brandi.js.org/reference/container#gettoken */ get(token: T): TokenType; /** * @access package * @deprecated * `conditions` argument is added for internal use. * Use it if you really understand that it is necessary. */ get(token: T, conditions: ResolutionCondition[]): TokenType; private resolveTokens; private resolveToken; private resolveBinding; private resolveCache; private createInstance; private getParameters; private static resolveInitialization; }