import { Capability, File, Package, Target } from "./ir"; export interface IPackageResolution { get_package(name: string): Promise; } export declare class PackageGraph { readonly target: Target; readonly trusted: Set; readonly packages: Map; constructor(target: Target, trusted: Set, packages: Map); get capability_requirements(): Map; get capability_providers(): Map; get_package(name: string): ResolvedPackage; parents(root: ResolvedPackage): ResolvedPackage[]; check_target(root: ResolvedPackage): void; check_capabilities(root: ResolvedPackage, capabilities: Set): void; check(root: ResolvedPackage, capabilities: Set, safe_mode: boolean): void; commit_capabilities(root: ResolvedPackage, capabilities: Set): void; serialise(root: ResolvedPackage): Generator; } export declare class ResolvedFile { readonly pkg: ResolvedPackage; readonly file: File; constructor(pkg: ResolvedPackage, file: File); with_basename(x: string): ResolvedFile; get basename(): string; get relative_filename(): string; get relative_basename(): string; get absolute_directory(): string; get absolute_filename(): string; get crochet_file(): ResolvedFile; get is_crochet(): boolean; get binary_image(): string; get extension(): string; } export declare class ResolvedPackage { readonly pkg: Package; readonly target: Target; readonly granted_capabilities: Set; constructor(pkg: Package, target: Target); get name(): string; get filename(): string; get root(): string; get binary_root(): string; get dependencies(): import("./ir").Dependency[]; get sources(): ResolvedFile[]; get native_sources(): ResolvedFile[]; get required_capabilities(): Set; get provided_capabilities(): Set; } export declare function build_package_graph(root: Package, target: Target, trusted: Set, resolver: IPackageResolution): Promise;