import { type DirectionPreset, type ResolvedConfig } from "../types.js"; /** How much of a project's own direction file reaches the judge. */ export declare const DIRECTION_MAX_CHARS = 12000; export interface LoadedDirection { /** The config-relative spelling of where it came from, never an absolute path. */ source: string; text: string; /** Lines of the project's own file that did not reach the judge. */ cut: number; } /** Where a shipped preset lives: inside the taste skill, so it ships with the package. */ export declare function presetPath(preset: DirectionPreset): string; /** * Trim a project's direction file to what a judge can use. * * A Stitch-format DESIGN.md is mostly token tables, and its `components:` * mapping (per-component token references) is the bulk of it while saying * nothing a still can show, so over budget that mapping goes first, whole. * What is still over the cap is cut on a line boundary with a marker saying * how much did not arrive, so a judge reading a truncated file knows it is * one. Deterministic and free: a model summary would cost a call per run and * would need its own cache. */ export declare function capDirection(text: string, max?: number): { text: string; cut: number; }; /** The declared direction, composed from the preset and the project's file, or null when none is declared. */ export declare function loadDirection(resolved: ResolvedConfig): Promise; /** The `{{direction}}` fill for a panel given the direction; "" for every other panel and when none is declared. */ export declare function directionBlock(d: LoadedDirection | null): string; /** The refuter's "What the project declared" section, or "" when nothing is. */ export declare function declaredBlock(neverFile: readonly string[] | undefined, direction: LoadedDirection | null): string;