/**
 * Pass 1: Combined Segmentation + Block Matching
 *
 * A single LLM pass that:
 * 1. Identifies distinct UI sections from HTML/JSX
 * 2. Skips non-UI content (imports, types, data constants)
 * 3. Matches each section to a built-in block or marks as custom
 *
 * Philosophy: Trust the LLM by default. Only add guardrails when
 * the LLM demonstrates it needs them.
 */
import type { SectionMatch, SkippedContent, BlockSummaryForLLM } from '../types';
import type { DebugWriter } from '../../manifest/debug';
import type { AiRuntime } from '../../ai/runtime';
export interface SegmentAndMatchContext {
    ai: AiRuntime;
    model: string;
    temperature: number;
    matchThreshold: number;
    debug: DebugWriter;
    onProgress?: (message: string) => void;
}
export interface SegmentAndMatchResult {
    success: true;
    sections: SectionMatch[];
    skippedContent: SkippedContent[] | null;
    rationale: string;
}
export interface SegmentAndMatchFailure {
    success: false;
    error: string;
}
/**
 * Combined Pass 1: Segment page and match sections to blocks in a single LLM call.
 */
export declare function segmentAndMatchBlocks(html: string, availableBlocks: BlockSummaryForLLM[], ctx: SegmentAndMatchContext): Promise<SegmentAndMatchResult | SegmentAndMatchFailure>;
