import { type DesignKitEntry, type DesignKitLoader, type DesignKitManifest, type DesignKitTokens, type DesignStack } from '../types/design-kit.js'; export interface DesignKitLoaderOptions { /** /.wrongstack/design-kits */ inProjectDir: string; /** ~/.wrongstack/profiles//design-kits */ globalDir: string; /** Bundled kits shipped with @wrongstack/core (packages/core/design-kits). */ bundledDir?: string | undefined; } /** * Discovery order (highest priority first; later layers are shadowed by name): * 1. Project-committed: /.wrongstack/design-kits/ * 2. User profile: ~/.wrongstack/profiles//design-kits/ * 3. Bundled with build: packages/core/design-kits/ * * The `_foundations` directory is a reserved kit id holding the mandatory * cross-cutting baseline; it is excluded from the selectable menu. */ export declare class DefaultDesignKitLoader implements DesignKitLoader { private readonly dirs; private cache?; private readonly bodyCache; private readonly tokenCache; private readonly rawTokenCache; constructor(opts: DesignKitLoaderOptions); list(): Promise; /** Selectable kits only (excludes the reserved `_foundations` entry). */ private selectable; listEntries(): Promise; find(id: string): Promise; menuText(): Promise; readBody(id: string, stack?: DesignStack): Promise; /** Read a kit's OWN tokens.json (no foundations merge). Cached per id. */ private readRawTokens; /** * Read a kit's tokens with the `_foundations` base scales merged UNDER them * (kit values win, per theme). This is why every kit resolves a full * radius/space/type/motion scale even though its tokens.json only lists the * axes it changes. `_foundations` itself is returned raw (no self-merge). */ readTokens(id: string): Promise; foundationsText(stack?: DesignStack): Promise; invalidateCache(): void; } /** * Resolve the bundled `design-kits/` directory shipped alongside this module. * The directory is a sibling of `src/` (dev) and `dist/` (built), so we probe a * few candidate depths relative to the compiled module location and return the * first that exists. Returns `undefined` if none is found (treated as "no * bundled kits this run"). */ export declare function resolveBundledDesignKitsDir(): string | undefined; /** * Memoized per-project loader. Used by the `design` tool and the Design Studio * middleware/slash-command so they share one cached instance without threading * the loader through every boot path. The loader is a pure disk reader (no * injected services), so a module-level memo is safe. */ export declare function getDesignKitLoader(projectRoot: string): DefaultDesignKitLoader; /** Test helper — clears the per-project loader memo. */ export declare function _resetDesignKitLoaderMemo(): void; //# sourceMappingURL=design-kit-loader.d.ts.map