import { Code } from '../../icc-api/model/Code';
export interface CodeChapter {
    code: string;
    descr: any;
    subCodes: string[];
}
/**
 * Groups a list of ICD-10 codes by their corresponding ICD-10 chapter.
 * @param listOfCodes an array of ICD-10 code strings to classify into chapters.
 * @param icd10Data the ICD-10 chapter range data (keys like 'A00-B99', values are description objects).
 * @return a sorted array of chapter objects, each containing a code, description, and list of matching sub-codes.
 */
export declare function icdChapters(listOfCodes: string[], icd10Data: {
    [range: string]: any;
}): CodeChapter[];
/**
 * Groups a list of ICPC-2 codes by their corresponding ICPC-2 chapter.
 * @param listOfCodes an array of ICPC-2 code strings to classify into chapters.
 * @param icpc2Data the ICPC-2 chapter data (keys are single letters, values are description objects).
 * @return a sorted array of chapter objects, each containing a code, description, and list of matching sub-codes.
 */
export declare function icpcChapters(listOfCodes: string[], icpc2Data: {
    [letter: string]: any;
}): CodeChapter[];
/**
 * Normalizes the code's four main fields (type, code, version and id). The first three are considered to be
 * authoritative, while the id is a pure function of them. The authoritative fields are filled in from the id if
 * missing, or the version is set to '1' if it is the only missing authoritative field. The id is then rederived from
 * the three fields.
 * @param code The code to normalize.
 * @returns A shallow copy of the input with its type, code, version and id normalized.
 */
export declare function normalizeCode(code: Code): Code;
