import ts from "typescript"; import { type AnalysisContext } from "./metadata-analysis.js"; import { type AttributeNode } from "./metadata-model.js"; /** * Analyze one named source type from a TypeScript module. * * @param options Metadata analysis options including the project root, source * type name, and types file path. * @returns The resolved project root plus the parsed root attribute node for * the requested source type. * @category Schema */ export declare function analyzeSourceType(options: { projectRoot?: string; sourceTypeName: string; typesFile: string; }): { projectRoot: string; rootNode: AttributeNode; }; /** * Analyze multiple named source types from a TypeScript module. * * @param options Metadata analysis options including the optional project root * and the relative types file path to parse. * @param sourceTypeNames Exported type or interface names to resolve from the * configured types file. * @returns A record keyed by source type name with parsed attribute-node trees * for each requested type. * @category Schema */ export declare function analyzeSourceTypes(options: { projectRoot?: string; typesFile: string; }, sourceTypeNames: string[]): Record; /** * Parse an interface or type alias declaration into one attribute-node tree. * * @param declaration TypeScript declaration node to parse. * @param ctx Shared analysis context used for type resolution and recursion * detection. * @param pathLabel Human-readable path label for diagnostics. * @param required Whether the resulting node should be marked as required. * @returns The parsed attribute-node representation for the declaration. * @category Schema */ export declare function parseNamedDeclaration(declaration: ts.InterfaceDeclaration | ts.TypeAliasDeclaration, ctx: AnalysisContext, pathLabel: string, required: boolean): AttributeNode; /** * Parse one TypeScript type node into the internal metadata model. * * @param node TypeScript AST node describing the source type shape. * @param ctx Shared analysis context used for symbol and type resolution. * @param pathLabel Human-readable path label used in parse errors and warnings. * @returns The parsed attribute-node representation of the provided type node. * @category Schema */ export declare function parseTypeNode(node: ts.TypeNode, ctx: AnalysisContext, pathLabel: string): AttributeNode;