import type { Spec, ReadinessReport } from '../types/index.js';
/**
 * Extract acceptance-criterion lines from the spec body.
 * Accepts four valid shapes (any can appear anywhere in the body):
 *  1. Checkbox form:          `- [ ] criterion text` / `- [x] criterion text`
 *  2. GIVEN/WHEN/THEN bullet: `- GIVEN ... WHEN ... THEN ...` (case-insensitive)
 *  3. Plain bullets inside a `## Acceptance Criteria` (or synonyms) section.
 *  4. Full multi-line body of `## Acceptance criteria` — includes BDD paragraphs
 *     with FILES:/FUNCTIONS:/TEST: markers that live between bullet lines.
 *
 * Historical parser (v1.82 and earlier) matched only form #1, producing false
 * negatives on specs authored with plain GIVEN/WHEN/THEN lists — those specs
 * reported `criteria: 0` at score 70 even when fully specified. Tracked in
 * memory/feedback_check_readiness_false_negative.md.
 *
 * SPEC-777 fix: form #4 ensures that FILES:/FUNCTIONS: markers embedded in BDD
 * paragraphs inside the AC section are visible to checkSpecificityGate.
 */
export declare function extractCriteriaLines(huContent: string): string[];
/**
 * SPEC-784: Returns true when the ## Technical body contains a pointer
 * like "See technical.md" or "See `some-file` spec.md" — a placeholder
 * that defers content to another file without providing it inline.
 */
export declare function detectTechnicalPlaceholder(body: string): boolean;
/**
 * SPEC-784: Returns true when the ## Technical body is too shallow:
 * fewer than TECHNICAL_MIN_CHARS characters AND contains zero file
 * paths under src/ or tests/.
 */
export declare function detectTechnicalTooShallow(body: string): boolean;
/**
 * Extract distinct file paths from arbitrary text.
 * Recognises paths in multiple formats:
 *  - bare:          src/engine/foo.ts
 *  - backtick:      `src/engine/foo.ts`
 *  - after FILES::  FILES: `a.ts`, `b.ts`
 *  - comma-sep:     src/a.ts, src/b.ts
 *  - in BDD paras:  GIVEN ... FILES: `src/...`
 */
export declare function extractFilePaths(text: string): Set<string>;
/**
 * Extract function/method names from text.
 * Recognises:
 *  - After FUNCTIONS:: FUNCTIONS: `detectStuckSpecs(...)`, `buildMergedBranchSet(...)`
 *  - Code spans: `fnName(...)` or `fnName()`
 *  - Inline: createFoo() detectBar(arg)
 */
export declare function extractFunctionNames(text: string): Set<string>;
/**
 * SPEC-769: Pure in-memory readiness check — no file I/O.
 * Accepts the raw spec.md content (including frontmatter) and returns a quick
 * score + warnings without loading technical.md or any additional file.
 *
 * Scoring (max 100):
 *  - Base (title/metadata present): 20
 *  - Criteria: 0 | 20 | 35 | 50  (0 / 1-2 / 3-4 / 5+)
 *  - Technical files (src/*.ts paths found in body): 30
 */
export declare function checkReadinessInternal(body: string): {
    score: number;
    warnings: string[];
    criteriaCount: number;
};
export declare function checkSpecReadiness(spec: Spec, mode: 'strict' | 'lenient', projectHash?: string): Promise<ReadinessReport>;
//# sourceMappingURL=readiness-checker.d.ts.map