export declare class CircularDependencyException extends Error { readonly nodes: T[]; constructor(nodes: T[]); getStart(): T; getEnd(): T; } export declare class ElementNotFoundException extends Error { readonly element: T; readonly dependency: T; constructor(element: T, dependency: T); } export declare abstract class BaseImplementation { throwCircularDependency: boolean; circularInterceptor?: (items: T[]) => void; constructor(throwCircularDependency?: boolean); protected throwCircularExceptionIfNeeded(element: T, parents: Set): void; }