import type { EL } from "../el"; import type { SentenceEnv } from "./sentenceEnv"; export declare enum ContainerType { ROOT = "ROOT", TOPLEVEL = "TOPLEVEL", ARTICLES = "ARTICLES", SENTENCES = "SENTENCES" } export declare const rootContainerTags: readonly ["Law"]; export declare const toplevelContainerTags: readonly ["EnactStatement", "Preamble", "MainProvision", "SupplProvision", "AppdxFig", "AppdxStyle", "AppdxFormat", "AppdxTable", "AppdxNote", "Appdx"]; export declare const articlesContainerTags: ("Part" | "Chapter" | "Section" | "Subsection" | "Division" | "SupplProvisionAppdxTable" | "SupplProvisionAppdxStyle" | "SupplProvisionAppdx")[]; export declare const sentencesContainerTags: readonly ["Article", "Paragraph", "Item", "Subitem1", "Subitem2", "Subitem3", "Subitem4", "Subitem5", "Subitem6", "Subitem7", "Subitem8", "Subitem9", "Subitem10", "Table", "TableRow", "TableColumn"]; export declare const containerTags: readonly ["Law", "EnactStatement", "Preamble", "MainProvision", "SupplProvision", "AppdxFig", "AppdxStyle", "AppdxFormat", "AppdxTable", "AppdxNote", "Appdx", ...("Part" | "Chapter" | "Section" | "Subsection" | "Division" | "SupplProvisionAppdxTable" | "SupplProvisionAppdxStyle" | "SupplProvisionAppdx")[], "Article", "Paragraph", "Item", "Subitem1", "Subitem2", "Subitem3", "Subitem4", "Subitem5", "Subitem6", "Subitem7", "Subitem8", "Subitem9", "Subitem10", "Table", "TableRow", "TableColumn"]; export declare const getContainerType: (tag: string) => ContainerType; interface IterableIterator extends Iterator { [Symbol.iterator](): IterableIterator; } export interface ContainerOptions { containerID?: string; el: EL; type?: ContainerType; name: string | null; num: string | null; sentenceRange?: [number, number]; allSentenceEnvs: SentenceEnv[]; } export declare class Container { readonly el: EL; readonly containerID: string; readonly type: ContainerType; readonly name: string | null; readonly num: string | null; sentenceRange: [number, number]; parent: Container | null; children: Container[]; subParent: Container | null; subChildren: Container[]; allSentenceEnvs: SentenceEnv[]; constructor(options: ContainerOptions); addChild(child: Container): Container; thisOrClosest(func: (container: Container) => boolean): Container | null; closest(func: (container: Container) => boolean): Container | null; parents(func?: (container: Container) => boolean): IterableIterator; linealAscendant(func?: (container: Container) => boolean): Container[]; findAncestorChildren(func: (container: Container) => boolean): Container | null; ancestorChildren(func: (container: Container) => boolean): IterableIterator; next(func: (container: Container) => boolean): Container | null; nextAll(func: (container: Container) => boolean): IterableIterator; prev(func: (container: Container) => boolean): Container | null; prevAll(func: (container: Container) => boolean): IterableIterator; thisOrClosestSub(func: (container: Container) => boolean): Container | null; closestSub(func: (container: Container) => boolean): Container | null; parentsSub(func: (container: Container) => boolean): IterableIterator; findAncestorChildrenSub(func: (container: Container) => boolean): Container | null; ancestorChildrenSub(func: (container: Container) => boolean): IterableIterator; nextSub(func: (container: Container) => boolean): Container | null; nextAllSub(func: (container: Container) => boolean): IterableIterator; prevSub(func: (container: Container) => boolean): Container | null; prevAllSub(func: (container: Container) => boolean): IterableIterator; find(func?: (container: Container) => boolean, cut?: (container: Container) => boolean): Container | null; findAll(func?: (container: Container) => boolean, cut?: (container: Container) => boolean): IterableIterator; iterate(func?: (container: Container) => boolean, cut?: (container: Container) => boolean): IterableIterator; iterateReverse(func?: (container: Container) => boolean, cut?: (container: Container) => boolean): IterableIterator; } export {};