@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
TypeScript
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;