import { VcsysBlockManifest, InstalledBlock } from '../types'; import { RegistryClient } from './registry-client'; export interface DependencyTree { name: string; version: string; dependencies: DependencyTree[]; optional?: boolean; } export interface ResolutionResult { toInstall: string[]; conflicts: string[]; missing: string[]; } export declare class DependencyResolver { private registryClient; private installedBlocks; constructor(registryClient: RegistryClient, installedBlocks?: InstalledBlock[]); resolveDependencies(packageName: string, manifest: VcsysBlockManifest): Promise; private resolveDependencyTree; private getPackageManifest; private normalizePackageName; buildDependencyTree(packageName: string, manifest: VcsysBlockManifest, depth?: number): DependencyTree; printDependencyTree(tree: DependencyTree, indent?: string): string; checkCircularDependencies(tree: DependencyTree, visited?: Set): string[]; updateInstalledBlocks(installedBlocks: InstalledBlock[]): void; }