export declare function addColumns(data: Record<string, any>[], columns: {
    header: string;
    value: any;
}[]): Record<string, any>[];

export declare const addISO3CountryCodeFromISO2: (data: object[], countryColumnName: string, iso3ColumnName?: string) => object[] | void[];

export declare const addISO3CountryCodeFromName: (data: object[], countryColumnName: string, iso3ColumnName?: string, countryNameMatchingThreshold?: number) => object[] | void[];

declare type AnyObject = Record<string, any>;

export declare function cleanData(data: Record<string, any>[]): Record<string, any>[];

export declare const csvToJson: (data: string, delimiter?: string, fileName?: string) => void;

export declare function downloadCSVFromData(data: Record<string, any>[], filename?: string): void;

export declare function downloadJsonFile(data: Record<string, any>[], filename?: string): void;

export declare function downloadMultipleCSVFromData(data: Record<string, any>[][], filename?: string): void;

declare type ErrorMessage = {
    errors: {
        row: number;
        column: string;
        message: string;
    }[];
    message: string;
};

export declare const getCountryDetailsFromISO2: (isoCode?: string) => {
    "Alpha-3 code": string;
    "Country or Area (official name)": string;
    "Alpha-2 code": string;
    "Numeric code": string;
    "Latitude (average)": string;
    "Longitude (average)": string;
    "Group 1": string;
    "Group 2": string;
    "Group 3": string;
    LDC: boolean;
    LLDC: boolean;
    SIDS: boolean;
    "UNDP Bureau": string;
} | {
    "Alpha-3 code": string;
    "Country or Area (official name)": string;
    "Alpha-2 code": string;
    "Numeric code": string;
    "Latitude (average)": string;
    "Longitude (average)": string;
    "Group 1": string;
    "Group 2": string;
    "Group 3": string;
    LDC: boolean;
    LLDC: boolean;
    SIDS: boolean;
    "UNDP Bureau": null;
} | undefined;

export declare const getCountryDetailsFromISO3: (isoCode?: string) => {
    "Alpha-3 code": string;
    "Country or Area (official name)": string;
    "Alpha-2 code": string;
    "Numeric code": string;
    "Latitude (average)": string;
    "Longitude (average)": string;
    "Group 1": string;
    "Group 2": string;
    "Group 3": string;
    LDC: boolean;
    LLDC: boolean;
    SIDS: boolean;
    "UNDP Bureau": string;
} | {
    "Alpha-3 code": string;
    "Country or Area (official name)": string;
    "Alpha-2 code": string;
    "Numeric code": string;
    "Latitude (average)": string;
    "Longitude (average)": string;
    "Group 1": string;
    "Group 2": string;
    "Group 3": string;
    LDC: boolean;
    LLDC: boolean;
    SIDS: boolean;
    "UNDP Bureau": null;
} | undefined;

export declare const getCountryDetailsFromName: (name: string, threshold?: number) => {
    "Alpha-3 code": string;
    "Country or Area (official name)": string;
    "Alpha-2 code": string;
    "Numeric code": string;
    "Latitude (average)": string;
    "Longitude (average)": string;
    "Group 1": string;
    "Group 2": string;
    "Group 3": string;
    LDC: boolean;
    LLDC: boolean;
    SIDS: boolean;
    "UNDP Bureau": string;
} | {
    "Alpha-3 code": string;
    "Country or Area (official name)": string;
    "Alpha-2 code": string;
    "Numeric code": string;
    "Latitude (average)": string;
    "Longitude (average)": string;
    "Group 1": string;
    "Group 2": string;
    "Group 3": string;
    LDC: boolean;
    LLDC: boolean;
    SIDS: boolean;
    "UNDP Bureau": null;
} | undefined;

export declare function getDataSummary(data: Record<string, any>[]): any[];

export declare const getISO2FromCountryName: (name: string, threshold?: number) => string | undefined;

export declare const getISO2FromISO3: (code: string) => string | undefined;

export declare const getISO3FromCountryName: (name: string, threshold?: number) => string | undefined;

export declare const getISO3FromISO2: (code: string) => string | undefined;

export declare const jsonToCsv: (data: Record<string, any>[] | string, fileName?: string) => void;

declare type Key = string;

export declare const mergeData: <T extends AnyObject>(arrays: T[][], joinKeys?: (keyof T)[]) => Array<Partial<T> & Record<Key, any>>;

export declare function parseData(data: Record<string, any>[], schema: SchemaField[]): Record<string, any>[] | ErrorMessage;

export declare function parseNumberAsFloatInData(data: Record<string, any>[]): {
    [x: string]: any;
}[];

export declare function removeColumns(data: Record<string, any>[], columns: string[]): Record<string, any>[];

export declare function renameHeader(data: Record<string, any>[], headers: {
    oldHeader: string;
    newHeader: string;
}[]): Record<string, any>[];

declare type SchemaField = {
    columnName: string;
    type: 'string' | 'number' | 'Alpha 3 code' | 'dateTime' | 'boolean';
    dateFormat?: string;
};

declare type SchemaField_2 = {
    columnName: string;
    type: 'string' | 'number' | 'Alpha 3 code' | 'dateTime' | 'boolean';
    required?: boolean;
    enum?: string[];
    range?: [number, number];
    dateFormat?: string;
};

declare type SheetData = Record<string, any[]>;

export declare function trimStringInData(data: Record<string, any>[]): {
    [x: string]: any;
}[];

export declare function validateData(data: Record<string, any>[], schema: SchemaField_2[]): ValidationError[];

declare type ValidationError = {
    row: number;
    column: string;
    message: string;
};

export declare const xlsxAllSheetToCSV: (file: string | File, combineSheets?: boolean, filename?: string, ignoreSheets?: string[]) => void;

export declare function xlsxAllSheetToData(file: string | File, combineSheets?: boolean, ignoreSheets?: string[]): Promise<any>;

export declare function xlsxToArrayUsingFileUpload(file: File, ignoreSheets?: string[]): Promise<SheetData>;

export declare function xlsxToArrayUsingURL(url: string, ignoreSheets?: string[]): Promise<any>;

export { }
