import type { DB } from "../index.js"; /** * Tag synonyms: alias -> canonical * Example: { "db": "database", "docs": "documentation" } */ export type TagSynonyms = Record; /** * Tag hierarchies: child -> parent * Example: { "mcp-tools": "mcp", "drizzle": "database" } */ export type TagHierarchies = Record; /** * Required tags: entityType -> required tag patterns * Example: { "facts": [], "skills": ["workflow"] } */ export type RequiredTags = Record; /** * Get tag synonyms from config */ export declare function getTagSynonyms(db: DB): Promise; /** * Get tag hierarchies from config */ export declare function getTagHierarchies(db: DB): Promise; /** * Get required tags from config */ export declare function getRequiredTags(db: DB): Promise; /** * Expand a list of tags to include synonyms. * Bidirectional: searching "db" also finds "database" and vice versa. */ export declare function expandTagsWithSynonyms(tags: string[], synonyms: TagSynonyms): string[]; /** * Expand a list of tags to include children (when searching by parent). * Parent search includes all descendants. */ export declare function expandTagsWithHierarchy(tags: string[], hierarchies: TagHierarchies): string[]; /** * Fully expand tags with both synonyms and hierarchy. * Order: synonyms first, then hierarchy (so synonym parents are also expanded). */ export declare function expandTags(db: DB, tags: string[]): Promise; /** * Validate that all required tags are present for an entity type (sync version). * Supports pattern matching with trailing * for prefix match. * Use this when you already have the required tags config. */ export declare function validateRequiredTagsSync(entityType: string, providedTags: string[], requiredTags: RequiredTags): { valid: boolean; missing: string[]; }; /** * Validate that all required tags are present for an entity type. * Supports pattern matching with trailing * for prefix match. * Fetches required tags config from database. */ export declare function validateRequiredTags(db: DB, entityType: string, providedTags: string[]): Promise<{ valid: boolean; missing: string[]; }>; //# sourceMappingURL=tag-relationships.d.ts.map