/**
 * @fileOverview excel2json main
 * @name index
 * @author Yuhei Aihara
 * https://github.com/iyu/excel2json
 */
import { ILogger } from './logger';
interface Opts {
    option_cell?: string;
    attr_line?: number;
    data_line?: number;
    ref_key?: string;
    logger?: ILogger;
}
interface DefaultOpts {
    option_cell: string;
    attr_line: number;
    data_line: number;
    ref_key: string;
    logger?: ILogger;
}
interface Cell {
    cell: string;
    column: string;
    row: number;
    value: string;
}
interface CellOpts {
    attr_line: number;
    data_line: number;
    ref_key: string;
    format?: {
        [key: string]: {
            type: string | null;
            key: string;
            keys: string[];
        };
    };
    name?: string;
    type?: string;
    key?: string;
}
interface ParseResult {
    num: number;
    name: string;
    opts: CellOpts;
    list: any[];
}
interface ParseError {
    num: number;
    name: string;
    error: Error;
}
declare class Excel2Json {
    opts: DefaultOpts;
    logger: ILogger;
    private _parser;
    /**
     * setup
     * @param {Object} options
     * @example
     * var options = {
     *     option_cell: 'A1',
     *     attr_line: 2,
     *     data_line: 4,
     *     ref_key: '_id',
     *     logger: CustomLogger
     * };
     */
    setup(options: Opts): this;
    /**
     * format
     * @param {Array} cells
     * @private
     * @example
     * var cells = [
     *     { cell: 'A1', value: '{}' }, { cell: 'A4', value: '_id' },,,
     * ]
     */
    _format(cells: Cell[]): {
        opts: CellOpts;
        list: any[];
    };
    /**
     * find origin data
     * @param dataMap
     * @param opts
     * @param data
     * @private
     */
    _findOrigin(dataMap: any, opts: CellOpts, data: any): any;
    /**
     * excel parser main script
     * @param {String} filepath
     * @param {Array} sheets
     * @param {Function} callback
     */
    parse(filepath: string, sheets: [], callback: (err: Error | null, result?: ParseResult[], errList?: ParseError[]) => void): Promise<void>;
    /**
     * sheetDatas to json
     * @param {Array} sheetDatas
     * @param {Function} callback
     */
    toJson(sheetDatas: ParseResult[], callback: Function): void;
}
declare const _default: Excel2Json;
export default _default;
