import type { Tokens, ComponentsData, ProhibitionRule, RuleEntry, RulesFile, RuleFilter } from "./types.js"; /** * アセット root を明示指定する。アセットを読み込む前に呼ぶこと * (呼んだ時点で読み込み済みキャッシュは破棄される)。 * @param path root ディレクトリ。design/contracts・metadata・package.json を持つこと * @param via 診断メッセージに出す解決経路の説明(例: `--melta-root=/path`) */ export declare function setMeltaRoot(path: string, via?: string): void; /** * 現在の root と、その解決経路を返す。 * 診断メッセージのほか、4 層が同じ root を解決していることを外から確認する用途 * (`--print-config` 相当)を想定している。 */ export declare function getMeltaRootInfo(): { root: string; via: string; }; /** * 明示指定を解除し、既定の解決(MELTA_ROOT → パッケージ相対)に戻す。 * setMeltaRoot は env より優先されるため、テストで差し替えたあと * process.cwd() で「戻したつもり」になると env 指定の worker を汚染する。 */ export declare function resetMeltaRoot(): void; /** * package.json を runtime 読みで取得する。 * 将来 npm publish で dist/ だけ配布する場合は embed 化(resolveJsonModule で * import / ビルド時置換)に切り替えること。現状は runtime 読みで十分。 */ export declare function loadPackage(): { name: string; version: string; }; /** * AI 向け入口である DESIGN.md をそのまま返す。 * package.json の files に DESIGN.md が含まれるため、repo / npm の両経路で同じ内容を読む。 */ /** * doc(DESIGN.md)を bundle が同梱しているか。 * MCP は resource を無条件に列挙していたため、doc を持たない bundle では * 「list には出るが read すると必ず ENOENT」という壊れた resource が残っていた。 * 列挙の可否をここで判定できるようにする(存在検査なので throw しない)。 */ export declare function hasDesignConstitution(): boolean; export declare function loadDesignConstitution(): string; export declare function loadTokens(): Tokens; export declare function loadComponents(): ComponentsData; /** * design/contracts/rules.json (SSOT) を生のまま読む。 * P0 で MCP resource / get_rules tool に公開する基盤。 */ export declare function loadRules(): RulesFile; /** * 全ルール(manual 含む全件)を返す。filter で絞り込み可能。 * MCP `get_rules` tool / `melta://rules` resource の実体。 */ export declare function getAllRules(filter?: RuleFilter): RuleEntry[]; /** * Prohibition rules loaded from design/contracts/rules.json (SSOT). * 自動検出可能なルール(判定は matcher.isAutoDetectable が単一の真理)のみ返す。 * matchPatterns がある場合は展開する。 */ export declare function getProhibitionRules(): ProhibitionRule[];