type ToCsv = { [K in keyof T as Exclude | NewKeys]: string; }; type Province = { code: string; name: string; }; type Regency = { code: string; name: string; provinceCode: string; }; type RegencyCsv = ToCsv; type District = { code: string; name: string; regencyCode: string; }; type DistrictCsv = ToCsv; type Village = { code: string; districtCode: string; name: string; }; type VillageCsv = ToCsv; type Island = { code: string; coordinate: string; isOutermostSmall: boolean; isPopulated: boolean; name: string; regencyCode: string | null; }; type IslandCsv = ToCsv; type Areas = 'provinces' | 'regencies' | 'districts' | 'villages' | 'islands'; type AreaHeaders = A extends 'provinces' ? keyof Province : A extends 'regencies' ? keyof RegencyCsv : A extends 'districts' ? keyof DistrictCsv : A extends 'villages' ? keyof VillageCsv : A extends 'islands' ? keyof IslandCsv : never; type HeaderTransformer = { [A in Areas]?: { [H in AreaHeaders]?: string; }; }; type ValueTransformer = { [A in Areas]?: { [H in AreaHeaders]?: (value: string) => unknown; }; }; type Transformer = { headers?: HeaderTransformer[A]; values?: ValueTransformer[A]; }; type BaseOptions> = { transform?: Tr; }; type Options = BaseOptions; declare function getData(area: A, options?: BaseOptions): Promise; declare function getProvinces(): Promise; declare function getRegencies(options?: Options<'regencies', Tr>): Promise<(Tr extends false ? ToCsv : Regency)[]>; declare function getDistricts(options?: Options<'districts', Tr>): Promise<(Tr extends false ? ToCsv : District)[]>; declare function getIslands(options?: Options<'islands', Tr>): Promise<(Tr extends false ? ToCsv : Island)[]>; declare function getVillages(options?: Options<'villages', Tr>): Promise<(Tr extends false ? ToCsv : Village)[]>; export { type AreaHeaders, type Areas, type BaseOptions, type District, type DistrictCsv, type HeaderTransformer, type Island, type IslandCsv, type Options, type Province, type Regency, type RegencyCsv, type Transformer, type ValueTransformer, type Village, type VillageCsv, getData, getDistricts, getIslands, getProvinces, getRegencies, getVillages };