import type { BaseLawInfo, LawList } from "../lawinfo"; import { LawInfo } from "../lawinfo"; export interface LawInfosStruct { lawInfos: LawInfo[]; lawInfosByLawnum: { [index: string]: LawInfo[]; }; lawInfosByLawID: { [index: string]: LawInfo[]; }; } export declare abstract class LawXMLStruct { abstract get xml(): string; abstract getPictFileOrBlobURL(src: string): Promise<{ url: string; type: string; } | null>; abstract getPictBlob(src: string): Promise<{ buf: ArrayBuffer; type: string; } | null>; } export declare abstract class Loader { abstract loadLawInfosStruct(): Promise; abstract loadBaseLawInfosFromCSV(): Promise; abstract loadLawXMLStructByInfo(info: BaseLawInfo): Promise; protected _cache: { lawListStruct: LawInfosStruct | null; }; cacheLawListStruct(): Promise; getLawInfoByLawNum(lawNum: string): Promise; getLawInfoByLawID(lawID: string): Promise; getLawInfoByLawIDOrLawNum(lawIDOrLawNum: string): Promise; makeLawListFromBaseLawInfos(baseLawInfos: BaseLawInfo[], onProgress?: (ratio: number, message: string) => void): Promise; } export declare const jsonTextToLawInfos: (text: string) => LawInfosStruct; export declare const lawInfosToByLawnumAndID: (lawInfos: LawInfo[]) => [lawInfosByLawnum: { [index: string]: LawInfo[]; }, lawInfosByLawID: { [index: string]: LawInfo[]; }]; export declare const csvTextToLawInfos: (text: string) => BaseLawInfo[];