UNPKG

@tricoteuses/arbre-de-la-loi

Version:

Generate ASTs from the French bills & laws; manipulate & export them to Markdown, etc.

111 lines (110 loc) 3.78 kB
import { HastElement, HastText } from "./hast"; export interface Annex extends UnstructuredBase { type: UnstructuredType.Annex; } export interface Article extends DivisionBase { type: DivisionType.Article; } export interface Bill extends DocumentBase { type: DocumentType.Bill; } export interface BillStatementOfReasons extends DocumentBase { type: DocumentType.BillStatementOfReasons; } export interface Book extends DivisionBase { type: DivisionType.Book; } export interface Chapter extends DivisionBase { type: DivisionType.Chapter; } export declare type Division = Article | Book | Chapter | Part | Section | Subsection | Subtitle | Title | Tome; export interface DivisionBase extends DocumentNodeBase { children: Array<Division | Unstructured>; type: DivisionType; } export interface DivisionStatementOfReasons extends UnstructuredBase { type: UnstructuredType.DivisionStatementOfReasons; } export declare enum DivisionType { Article = "article", Book = "book", Chapter = "chapter", Part = "part", Section = "section", Subsection = "subsection", Subtitle = "subtitle", Title = "title", Tome = "tome" } export declare const divisionTypes: Set<DocumentNodeType>; export declare type Document = Bill | BillStatementOfReasons; export interface DocumentBase extends DocumentNodeBase { children: Array<Division | Unstructured>; type: DocumentType; } export declare type DocumentNode = Division | Document | Unstructured; export interface DocumentNodeBase { children?: Array<Division | Unstructured>; headlines?: Array<HastElement | HastText>; lines?: Array<HastElement | HastText>; eId?: string; guid?: string; number?: number; type: DocumentNodeType; } export declare enum DocumentType { Bill = "bill", BillStatementOfReasons = "bill_statement_of_reasons" } export declare const documentTypes: Set<DocumentNodeType>; export interface Part extends DivisionBase { type: DivisionType.Part; } export interface Section extends DivisionBase { type: DivisionType.Section; } export interface Subsection extends DivisionBase { type: DivisionType.Subsection; } export interface Subtitle extends DivisionBase { type: DivisionType.Subtitle; } export interface Title extends DivisionBase { type: DivisionType.Title; } export interface Tome extends DivisionBase { type: DivisionType.Tome; } export interface Unknown extends UnstructuredBase { type: UnstructuredType.Unknown; } export declare type Unstructured = Annex | DivisionStatementOfReasons | Unknown; export interface UnstructuredBase extends DocumentNodeBase { type: UnstructuredType; } export declare enum UnstructuredType { Annex = "annex", DivisionStatementOfReasons = "division_statement_of_reasons", Unknown = "unknown" } export declare const unstructuredTypes: Set<DocumentNodeType>; export declare const DocumentNodeType: { Annex: UnstructuredType.Annex; DivisionStatementOfReasons: UnstructuredType.DivisionStatementOfReasons; Unknown: UnstructuredType.Unknown; Bill: DocumentType.Bill; BillStatementOfReasons: DocumentType.BillStatementOfReasons; Article: DivisionType.Article; Book: DivisionType.Book; Chapter: DivisionType.Chapter; Part: DivisionType.Part; Section: DivisionType.Section; Subsection: DivisionType.Subsection; Subtitle: DivisionType.Subtitle; Title: DivisionType.Title; Tome: DivisionType.Tome; }; export declare type DocumentNodeType = DivisionType | DocumentType | UnstructuredType; export declare const documentNodeTypes: Set<DocumentNodeType>; export declare const documentNodeWithHeadlinesTypes: Set<DocumentNodeType>; export declare function assertNeverDocumentNode(node: never): never;