/** * GEF-BORE code dictionary based on GEF-BORE-Report specification * All descriptions are in Dutch as per the original specification */ export declare const BORE_LAYER_QUANTITY: { readonly DEPTH_TOP: 1; readonly DEPTH_BOTTOM: 2; readonly CLAY_PERCENT: 3; readonly SILT_PERCENT: 4; readonly SAND_PERCENT: 5; readonly GRAVEL_PERCENT: 6; readonly ORGANIC_PERCENT: 7; readonly SAND_MEDIAN: 8; readonly GRAVEL_MEDIAN: 9; }; /** NEN 5104 main soils (hoofdgrondsoort): code letter -> Dutch noun. */ export declare const NEN5104_MAIN_SOILS: Record; /** A NEN 5104 admixture (toevoeging), keyed by its lowercase code letter. */ export interface Nen5104Admixture { /** Dutch adjective as it appears in descriptions ("siltig"). */ adjective: string; /** * Main soil the admixture material corresponds to ("s" siltig -> "L" leem), * e.g. for colouring composition sub-bands. Undefined for pure qualifiers * like "m" (mineraalarm), which describe the soil rather than add material. */ soil?: string; /** Non-standard synonyms seen in practice ("lemig" for siltig). */ synonyms?: Array; } /** NEN 5104 admixtures (toevoegingen): code letter -> adjective + related soil. */ export declare const NEN5104_ADMIXTURES: Record; /** NEN 5104 admixture grades (gradatie): 1 zwak … 4 uiterst. */ export declare const NEN5104_GRADES: Record; export declare const NEN5104_SOIL_CODES: Record; export declare const NON_STANDARD_SOIL_CODES: Record; export declare const ADDITIONAL_SOIL_CODES: Record; export declare const SECONDARY_COLORS: Record; export declare const MAIN_COLORS: Record; export declare const SAND_MEDIAN_CLASSES: Record; export declare const SAND_SPREAD: Record; export declare const GRAIN_SHAPE: Record; export declare const GRAVEL_MEDIAN_CLASSES: Record; export declare const GRAVEL_FRACTIONS: Record; export declare const PEAT_AMORPHOSITY: Record; export declare const PEAT_TYPES: Record; export declare const CONSISTENCY: Record; export declare const SAND_COMPACTION: Record; export declare const ROCK_HARDNESS: Record; export declare const SHELL_CONTENT: Record; export declare const CALCIUM_CONTENT: Record; export declare const GLAUCONITE_CONTENT: Record; export declare const ANTHROPOGENIC_ADMIXTURES: Record; export declare const LAYERING: Record; export declare const GEOLOGICAL_INTERPRETATION: Record; export declare const STRATIGRAPHIC_UNITS: Record; /** * Parse a free-text Dutch soil description into its NEN 5104 structure, * e.g. "zand matig fijn zwak siltig" -> the structure of "Zs1". A description * that already is a valid soil code ("Ks1", "NBE") is parsed as such. * Unrecognised text comes back as the special code "NBE". * * The returned `lithology` is the derived soil-code string, so consumers can * treat description-based layers (e.g. CPT pre-excavation) exactly like coded * borehole layers. */ export declare function parseSoilDescription(description: string): SoilCode; /** * Derive a NEN 5104-style soil code string from a free-text Dutch soil * description ("leem zwak zandig" -> "Lz1"); see `parseSoilDescription`. */ export declare function getSoilCodeFromDescription(description: string): string; /** A single admixture (toevoeging) within a soil code, e.g. the `s1` in `Ks1`. */ export interface SoilAdmixture { /** Admixture letter: s siltig, z zandig, g grindig, h humeus, k kleiig, m mineraalarm. */ letter: string; /** Grade 1 (zwak) – 4 (uiterst), or undefined when the admixture is ungraded. */ grade?: number; } /** * The structural decomposition of a GEF-BORE soil code, which embeds the * NEN 5104 grammar: a main soil letter followed by `letter[grade]` admixtures * ("Ks1h3" = klei + zwak siltig + sterk humeus), optionally trailed by * space-separated qualifiers ("Zs1 GCZ" -> qualifier "GCZ", glauconietzand). */ export interface SoilCode { /** First whitespace-separated token — the lithology, e.g. "Ks1h3" or "NBE". */ lithology: string; /** Main soil letter (G/K/L/V/Z), or "" for special/unknown codes (NBE, GM). */ main: string; /** Admixtures parsed from the lithology, in source order. */ admixtures: Array; /** Trailing qualifier tokens, e.g. ["GCZ"] for "Zs1 GCZ". */ qualifiers: Array; } /** * Parse a GEF-BORE soil code into its NEN 5104 structure. This is the single * source of truth for the grammar of these codes; `decodeBoreCode` (text) is * an interpreter built on top of it. (Soil-log colours live in the consuming * app, e.g. gef-webapp's `getSoilColor`, also built on this parser.) * * Always returns a structure — never throws. Special codes that don't start * with a main soil (NBE "niet benoemd", GM "geen monster") come back with * `main: ""` and no admixtures, so callers can branch on `main`. */ export declare function parseSoilCode(code: string): SoilCode; /** * Render an already-parsed soil code to its Dutch description; the * structure-level counterpart of `decodeBoreCode` for callers that hold a * `SoilCode` (from `parseSoilCode` or `parseSoilDescription`). */ export declare function describeSoilCode(soil: SoilCode): string; /** * Decode a GEF-BORE code to its Dutch description. Handles single dictionary * codes, composite NEN 5104 codes ("Ks1h3"), and trailing qualifiers * ("Zs1 GCZ" -> "Zand, zwak siltig, glauconietzand"). Unknown tokens are kept * verbatim, so an entirely unrecognized code is returned unchanged. */ export declare function decodeBoreCode(code: string): string; //# sourceMappingURL=gef-bore-codes.d.ts.map