import { type MarkdownLinkTargetRecord, type MarkdownSourceRange, type MarkdownSyntax } from "./markdown-syntax.js"; export type MarkdownSemanticUnit = MarkdownSourceRange & { kind: "paragraph" | "code"; lines: string[]; contentStartLine?: number; }; export type MarkdownSecurityEligibility = "markdown-structured" | "plain-text-structured" | "raw-agent-visible"; /** Raw source that an agent can read even though Markdown renderers hide it. */ export type MarkdownHtmlComment = MarkdownSourceRange & { startColumn: number; endColumn: number; content: string; }; export type SecurityGuardEvidence = MarkdownSourceRange & { kind: "same-instruction" | "same-list-item" | "preceding-paragraph" | "safety-section"; text: string; }; export declare class MarkdownSecurityView { readonly semanticUnits: MarkdownSemanticUnit[]; readonly htmlComments: MarkdownHtmlComment[]; readonly resolvedDestinations: readonly MarkdownLinkTargetRecord[]; private readonly sourceLines; readonly bodyStartLine: number; private readonly records; private readonly visibleLines; private readonly headings; private readonly thematicBreaks; private readonly blockQuoteLines; private readonly operationalBlockQuoteLines; private readonly nonOperationalExampleLines; private readonly nonOperationalExampleRangesByLine; private readonly codeBlockLines; private readonly codeContentLines; private readonly codeBlocksByNode; private readonly codeBlocks; private readonly definitionLines; private readonly visibleLineProjections; private readonly eligibility; private readonly inlineCodeByUnit; constructor(syntax: MarkdownSyntax, eligibility?: MarkdownSecurityEligibility); visibleLine(lineIndex: number): string; usesRawAgentVisibleEligibility(): boolean; isBlockQuotedLine(lineIndex: number): boolean; isOperationalBlockQuotedLine(lineIndex: number): boolean; isNonOperationalExampleLine(lineIndex: number): boolean; isLinkDefinitionLine(lineIndex: number): boolean; /** Map a one-based original source column into the visible projection. */ visibleOffsetForSourceColumn(lineIndex: number, column: number): number; instructionLine(lineIndex: number): string; isCodeBlockLine(lineIndex: number): boolean; isCodeContentLine(lineIndex: number): boolean; languageAt(lineIndex: number): string | undefined; sameMarkdownBlock(firstLineIndex: number, lastLineIndex: number): boolean; inlineCodeProse(unit: MarkdownSemanticUnit, text: string): string; sameStructuralSection(firstLineIndex: number, lastLineIndex: number): boolean; associatedGuardLines(lineIndex: number): string[]; associatedGuardEvidence(lineIndex: number): SecurityGuardEvidence[]; instructionSectionText(line: number): string; private paragraphCandidate; private codeBlockCandidate; private htmlProseCandidates; private isOperationalFence; private isOperationalBlockQuote; private isNonOperationalExample; private classifyNonOperationalExampleLines; private addNonOperationalExampleRange; private nonOperationalExampleProjection; private operationalCandidateSegments; private routedContainerRecord; private headingChainAt; private sectionRangeAt; private smallestBlockRecordAtLine; private guardEvidenceForRange; private guardRangeAfterBoundaries; }