import Content from "../runtime/content.js"; import Resource from "./resource.js"; import Struct, { StructPath } from "./struct.js"; import UserDefinedType from "./userDefinedType.js"; import { GenericProperties, Struct as RuntimeStruct } from "../runtime/struct.js"; export declare function normalizeMapEntry(key: string): string; export declare const moduleSuperType = "application/spec"; export declare const mediaTypeSeparator = "."; /** * PackagePath contains the scope of the package */ export declare class PackagePath { readonly namespace: string; readonly name: string; /** * mediaTypeSubType returns the media type sub type for the package * as in application/spec.. */ readonly mediaTypeSubType: string; constructor(namespace: string, name: string); toString(): string; } /** * Package */ export default class Package { readonly path: PackagePath; private readonly resources; private readonly types; annotations: any[]; /** * allPackages is a list of all packages including this and all imported */ private allPackages; private structsByFQTN; constructor(namespace: string, module: string); importPackage(pkg: Package): void; _addAnnotation(annotation: T, config?: (annotation: T) => void): void; /** * Resource by name returns the resource with the given name * or undefined if not found * @param name name of the resource * @returns */ resourceByName(name: string): Resource | null; _addResource(resource: Resource): void; typeByName(name: string): UserDefinedType | null; requireTypeByName(name: string): UserDefinedType; _addType(tp: UserDefinedType): void; /** * Returns the Struct with the given FQTN, otherwise throws an error @TypeNotFoundError * @param fqtn * @returns */ structByFQTN(structPath: StructPath): Struct; buildByFQTN(structPath: StructPath, content: Content): RuntimeStruct; requireBuildFromJSON(structPath: StructPath, structJSON: Record | object | any): RuntimeStruct; requireBuildByFQTN(structPath: StructPath, content: Content): RuntimeStruct; requireBuildArrayNullableItems(structPath: StructPath, contentArray: (Content | null)[]): (GenericProperties | null)[]; requireBuildArrayNonNullableItems(structPath: StructPath, contentArray: (Content | null)[]): GenericProperties[]; } export declare class TypeNotFoundError extends Error { constructor(typeName: string); }