import { Era } from "./std"; export declare enum LawIDType { Constitution = "Constitution", Act = "Act", CabinetOrder = "CabinetOrder", ImperialOrder = "ImperialOrder", DajokanFukoku = "DajokanFukoku", DajokanTasshi = "DajokanTasshi", DajokanFutatsu = "DajokanFutatsu", MinisterialOrdinance = "MinisterialOrdinance", Jinji = "Jinji", Rule = "Rule", PrimeMinisterDecision = "PrimeMinisterDecision" } export declare const lawIDTypes: LawIDType[]; export declare const ptnLawID: { [K in LawIDType]: string; }; export interface LawIDStructConstitution { text: string; type: LawIDType.Constitution; era: Era; year: string; } export declare enum LawIDActCategory { Cabinet = "0000000", HouseOfRepresentative = "1000000", HouseOfCouncillors = "0100000" } export interface LawIDStructAct { text: string; type: LawIDType.Act; era: Era; year: string; category: LawIDActCategory; rawNum: string; num: string; } export declare enum LawIDCabinetOrderEffect { CabinetOrder = "0000000", Act = "1000000" } export interface LawIDStructCabinetOrder { text: string; type: LawIDType.CabinetOrder; era: Era; year: string; category: LawIDCabinetOrderEffect; rawNum: string; num: string; } export interface LawIDStructImperialOrder { text: string; type: LawIDType.ImperialOrder; era: Era; year: string; category: LawIDCabinetOrderEffect; rawNum: string; num: string; } export interface LawIDStructDajokanFukoku { text: string; type: LawIDType.DajokanFukoku; era: Era; year: string; category: LawIDCabinetOrderEffect; rawNum: string; num: string; } export interface LawIDStructDajokanTasshi { text: string; type: LawIDType.DajokanTasshi; era: Era; year: string; category: LawIDCabinetOrderEffect; rawNum: string; num: string; } export interface LawIDStructDajokanFutatsu { text: string; type: LawIDType.DajokanFutatsu; era: Era; year: string; category: LawIDCabinetOrderEffect; rawNum: string; num: string; } export interface LawIDStructMinisterialOrdinance { text: string; type: LawIDType.MinisterialOrdinance; era: Era; year: string; category: string; rawNum: string; num: string; } export interface LawIDStructJinji { text: string; type: LawIDType.Jinji; era: Era; year: string; rawNumPart1: string; rawNumPart2: string; rawNumPart3: string; num: string; } export interface LawIDStructRule { text: string; type: LawIDType.Rule; era: Era; year: string; category: string; rawNum: string; num: string; } export interface LawIDStructPrimeMinisterDecision { text: string; type: LawIDType.PrimeMinisterDecision; era: Era; year: string; date: string; rawNum: string; num: string; } export type LawIDStruct = LawIDStructConstitution | LawIDStructAct | LawIDStructCabinetOrder | LawIDStructImperialOrder | LawIDStructDajokanFukoku | LawIDStructDajokanTasshi | LawIDStructDajokanFutatsu | LawIDStructMinisterialOrdinance | LawIDStructJinji | LawIDStructRule | LawIDStructPrimeMinisterDecision; export declare const parseLawID: (text: string) => LawIDStruct | null; export interface LawRevIDStruct { law: LawIDStruct; date: string; amendLaw: LawIDStruct | null; } export declare const parseLawIDOrLawRevID: (text: string) => LawRevIDStruct | LawIDStruct | null;