import { Capabilities, Capability } from "./capability"; import { Dependency } from "./dependency"; import { Target } from "./target"; import { File } from "./file"; export interface PackageData { name: string; target: Target; sources: File[]; native_sources: File[]; dependencies: Dependency[]; capabilities: { requires: Set; provides: Set; }; } export declare class CrochetPackage { readonly filename: string; private data; readonly root: string; constructor(filename: string, data: PackageData); get name(): string; get target(): Target; sources_for(target: Target): string[]; native_sources_for(target: Target): string[]; dependencies_for(target: Target): Dependency[]; get capabilities(): { requires: Set; provides: Set; }; get required_capabilities(): Set; relative_filename(filename: string): string; allows(x: Capability): boolean; resolve(source: string): string; restricted_to(target: Target): RestrictedCrochetPackage; static get spec(): import("../../utils").SpecFun<(filename: string) => CrochetPackage>; static parse(x: any, filename: string): CrochetPackage; static empty(filename: string, capabilities: Capabilities, dependencies: string[]): CrochetPackage; } export declare class RestrictedCrochetPackage extends CrochetPackage { readonly target_restriction: Target; constructor(target_restriction: Target, pkg: CrochetPackage); get sources(): string[]; get native_sources(): string[]; get dependencies(): Dependency[]; }