export declare type DataMapperFunction<T> = (rs: any, index?: number, data?: any) => T;
export declare type DataMapperClass<T> = new () => DataMapper<T>;
export interface MapperComfig<T> {
    ignore?: 'null' | ((result: T, index?: number) => boolean);
    [key: string]: any;
}
export declare abstract class DataMapper<T> {
    static parseWith<T>(mapper: DataMapperClass<T> | DataMapperFunction<T>, rs: any | string, options?: MapperComfig<T>): T;
    static parseArrayWith<T>(mapper: DataMapperClass<T> | DataMapperFunction<T>, rs: any[] | string, options?: MapperComfig<T>): T[];
    static parseMapWith<T>(mapper: DataMapperClass<T> | DataMapperFunction<T>, rs: any | string, options?: MapperComfig<T>): {
        [key: string]: T;
    };
    abstract map(rs: any, index?: number, data?: any): T;
    parse(rs: any, index?: number, data?: any): T;
}
