/** * @copyright Sister Software * @license AGPL-3.0 * @author Teffen Ellis, et al. * * The Korean road-name address register (주소DB) used as alignment ground truth. The ministry assigns * the road names and building numbers it publishes, so the register asserts `address` on `premise` * rows where the permit registry's address field is an `observation`. The archive is four * pipe-delimited CP949 text files per 시도 plus one nationwide road-code file, as the guide inside the * zip states (붙임1, the 전체분 layout), and both its member names and its contents need the publisher's * encoding. */ import type { PathBuilderLike } from "path-ts"; /** * The 2026 edition merged 전남광주통합특별시 while older sources still write 전라남도 and 광주광역시, * so a typed string in either form aligns against the register through this map. */ export declare const REGION_ALIASES: Readonly>; /** * One address of the register, with the pieces the road form and the lot form each write. */ export interface JusoLabelRow { region: string; sigungu: string; /** * The 읍/면 included in the road address between the 시군구 and the road (읍면동구분 `0`), else empty. * * A 동 is never written in the road form, it goes in the parenthetical. */ eupmyeon: string; dong: string; ri: string; road: string; number: string; postcode: string; building: string; lot: string; underground: boolean; } /** * What the official form writes in parentheses after the number: the 법정동 in a 동 area, the 리 in an 읍/면. */ export declare function parenthetical(row: JusoLabelRow): string; /** * Every full-edition member of one kind as `[region suffix, archive name]`, sorted by region. * * The monthly edition's 변동 (change-only) files under the same prefixes are excluded by name. */ export declare function regionMembers(names: readonly string[], prefix: string): Array<[string, string]>; export interface ReadJusoOptions { /** * Stop after this many rows per 시도, for a fixture or a smoke run. * Omit for the whole register. */ maxRowsPerRegion?: number; } /** * Stream every label row region by region, holding one 시도's lot and supplement files * while its address file streams, so the join never holds the country at once. */ export declare function readJusoLabelRows(archivePath: PathBuilderLike, options?: ReadJusoOptions): AsyncGenerator; //# sourceMappingURL=label-rows.d.ts.map