import type { Container } from "."; import type { SentenceEnvsStruct } from "../../analyzer/getSentenceEnvs"; import * as std from "../../law/std"; import type { EL } from "../el"; import type { RangeInfo, __MismatchEndParenthesis, __MismatchStartParenthesis, __PEnd, __PStart, ____Declaration, ____LawNum, ____LawRef, ____Pointer, ____VarRef } from "../el/controls"; import { __Text } from "../el/controls"; import type { PointerEnv } from "../pointerEnv"; export interface SentenceTextPos { sentenceIndex: number; textOffset: number; } export interface SentenceTextRange { start: SentenceTextPos; end: SentenceTextPos; } export declare const toSentenceTextRanges: (origRangeInfos: readonly RangeInfo[] | null, sentenceEnvsStruct: SentenceEnvsStruct, following?: SentenceTextPos | null) => SentenceTextRange[]; export declare const sentenceTextTags: readonly ["Ruby", "QuoteStruct", "ArithFormula", "Sub", "Sup", "Line", "__Text", "__PStart", "__PEnd", "__MismatchStartParenthesis", "__MismatchEndParenthesis", "____Pointer", "____LawNum", "____Declaration", "____VarRef"]; export type SentenceText = (std.Ruby | std.QuoteStruct | std.ArithFormula | std.Sub | std.Sup | std.Line | __Text | __PStart | __PEnd | __MismatchStartParenthesis | __MismatchEndParenthesis | ____Pointer | ____LawNum | ____Declaration | ____VarRef); export declare const isSentenceText: (el: EL | string) => el is SentenceText; export declare const textOfSentenceText: (el: SentenceText) => string; export declare function enumerateSentenceTexts(el: EL): Iterable; export declare const setTextControl: (el: EL) => void; export type SentenceLike = (std.Sentence | std.EnactStatement | std.TableHeaderColumn); export declare const sentenceLikeTags: readonly ["Sentence", "EnactStatement", "TableHeaderColumn"]; export declare const isSentenceLike: (el: EL | string) => el is SentenceLike; export interface SentenceEnvOptions { index: number; elToBeModified: SentenceLike; lawType: string; parentELs: EL[]; container: Container; } export type PointerLike = PointerEnv | ____LawRef | [____VarRef, ____LawRef]; export declare class SentenceEnv { readonly index: number; readonly el: SentenceLike; lawType: string; parentELs: EL[]; container: Container; private _text; get text(): string; private _pointerLikes; get pointerLikes(): Readonly; addPointerLike(pointerLike: { textRange: [number, number] | null; pointerLike: PointerLike; }): void; constructor(options: SentenceEnvOptions); linealAscendantOfEL(el: EL): EL[] | null; textRageOfEL(el: EL): [number, number] | null; sentenceTextAt(targetOffset: number): SentenceText | null; }