import { MJComponentLibraryEntity } from '@memberjunction/core-entities';
import { DependencyGraph, LoadOrderResult, ResolvedVersion, VersionRequirement, DependencyResolutionOptions } from '../types/dependency-types.js';
export declare class LibraryDependencyResolver {
    private debug;
    constructor(options?: DependencyResolutionOptions);
    parseDependencies(json: string | null): Map<string, string>;
    buildDependencyGraph(libraries: MJComponentLibraryEntity[]): DependencyGraph;
    detectCycles(graph: DependencyGraph): string[][];
    topologicalSort(graph: DependencyGraph): MJComponentLibraryEntity[];
    private parseVersion;
    private parseVersionRange;
    private versionSatisfiesRange;
    private compareVersions;
    resolveVersionConflicts(requirements: VersionRequirement[], availableLibraries: MJComponentLibraryEntity[]): ResolvedVersion;
    getLoadOrder(requestedLibs: string[], allLibs: MJComponentLibraryEntity[], options?: DependencyResolutionOptions): LoadOrderResult;
    getDirectDependencies(library: MJComponentLibraryEntity): Map<string, string>;
    getTransitiveDependencies(libraryName: string, allLibs: MJComponentLibraryEntity[], maxDepth?: number): Set<string>;
}
//# sourceMappingURL=library-dependency-resolver.d.ts.map