export declare const PROJECT_CONTRACT_EXTENSIONS: Set; export declare const PROJECT_MANIFEST_NAMES: Set; /** * Raw extraction results. These are deliberately uncapped and unformatted: the * `*Contract` renderers below apply the compact `unique()` limits, while * cross-file reference checking needs the complete sets. One parser, two * consumers — never add a second scanner for the same syntax. */ export interface HtmlFacts { stylesheets: string[]; scripts: string[]; ids: string[]; classes: string[]; /** Static class tokens grouped by the element that owns them. */ classSets: string[][]; emptyClassSets: string[][]; handlerCalls: string[]; operationLabels: string[]; numberLabels: string[]; landmarks: string[]; elements: string[]; } export interface CssFacts { imports: string[]; urls: string[]; customProperties: string[]; selectors: string[]; } export interface JavaScriptFacts { modules: string[]; selectors: string[]; /** Class names passed as string literals to classList add/remove/toggle/contains. */ toggledClasses: string[]; /** * True when a class name reaches the DOM through something other than a plain * string literal — a template literal, a variable, a ternary branch. The real * class set is then beyond static reach, so no static pass may declare a rule * that mentions those classes dead. */ dynamicClassNames: boolean; /** Element ids the script assigns, as string literals. */ assignedIds: string[]; /** True when an id reaches the DOM as something other than a string literal. */ dynamicIds: boolean; /** * True when the script creates elements or writes markup — `createElement`, * `innerHTML`, `insertAdjacentHTML`, `append`. Elements this scanner never * sees can then carry any id or class. */ buildsMarkup: boolean; /** * True when the script writes children or text into an existing element, so * an element that is empty in the markup need not be empty when painted. */ injectsContent: boolean; /** Static class and className tokens rendered by JSX or DOM-like templates. */ renderedClasses: string[]; /** Static JSX className tokens grouped by the element that owns them. */ renderedClassSets: string[][]; /** Static class sets on self-closing or empty JSX elements. */ emptyRenderedClassSets: string[][]; /** True when the source assigns `.hidden` or sets the `hidden` attribute. */ togglesHiddenAttribute: boolean; } export declare function htmlFacts(content: string): HtmlFacts; export declare function cssFacts(content: string): CssFacts; export declare function javaScriptFacts(content: string): JavaScriptFacts; /** Extract a bounded interface/relationship summary without executing source. */ export declare function compactFileContract(path: string, content: string): string; //# sourceMappingURL=project-contracts.d.ts.map