import { DivisionType, PortionType, TextAstLocalization, TextAstReference } from '../text_parsers/ast.js'; export type PortionSelectorStep = { type: PortionType | DivisionType; index?: number; num?: string; relative?: TextAstLocalization["relative"]; present?: boolean; }; export type PortionSelector = { kind: "single"; steps: PortionSelectorStep[]; } | { kind: "range"; first: PortionSelectorStep[]; last: PortionSelectorStep[]; count?: number; }; export type ArticlePortionNode = ArticlePortionArticle | ArticlePortionDivision | ArticlePortionItem | ArticlePortionAlinea | ArticlePortionPhrase; export interface ArticlePortionArticle { type: "article"; children: ArticlePortionNode[]; } export interface ArticlePortionDivision { type: DivisionType; index?: number; num?: string; label?: string; children: ArticlePortionNode[]; } export interface ArticlePortionItem { type: "item"; index?: number; num?: string; label?: string; children: ArticlePortionNode[]; } export interface ArticlePortionAlinea { type: "alinéa"; index: number; text: string; html: string; paragraphIndex: number; htmlStart?: number; htmlStop?: number; lineIndex?: number; } export interface ArticlePortionPhrase { type: "phrase"; index: number; text: string; html: string; paragraphIndex: number; htmlStart?: number; htmlStop?: number; alinea: ArticlePortionAlinea; } export type ArticlePortionMatch = { selector: PortionSelector; node: ArticlePortionNode; path: ArticlePortionNode[]; } | { selector: PortionSelector; start: ArticlePortionNode; end: ArticlePortionNode; pathStart: ArticlePortionNode[]; pathEnd: ArticlePortionNode[]; }; export declare const ITEM_PREFIX_RE: RegExp; export declare const BARE_ITEM_PREFIX_RE: RegExp; export declare function isRomanNumeral(token: string): boolean; export declare function isArticlePortionStructuralStart(text: string): boolean; export declare function buildArticlePortionTreeFromHtml(html: string): ArticlePortionArticle; export declare function extractPortionSelectors(reference: TextAstReference): PortionSelector[]; export declare function resolvePortionSelector(article: ArticlePortionArticle, selector: PortionSelector): ArticlePortionMatch | null;