/**
 * 更新一个列表中的一个对象，并返回一个新的列表
 * @param list 需要被修改的列表
 * @param data 新的数据
 * @param rowKey 列表中数据的主键，如果不传，则为 `id`
 * @return 一个新的列表
*/
declare function update(list: any[], data: any, rowKey?: string): any[];
/**
 * 往列表的最前面插入一项，并返回一个新的列表
 * @param list 需要被插入的列表
 * @param data 新的数据
*/
declare function add(list: any[], data: any, rowKey?: string): any[];
/**
 * 在一个列表里面删除指定的数据，并返回一个新的列表
 * @param list 需要被插入的列表
 * @param ids 需要删除的 id 列表
 * @param rowKey 每条数据的识别的主键 默认为 'id'
*/
declare function del(list: any[], ids: any[], rowKey?: string): any[];
declare function doLoad(state: any, data: any): any;
/**
 * 构建一个脐具备增删改查功能的 Model.
 * 构造出的Model 具备  _query,_add,_update,_delete 四个属性
 * _query : ({query})    _query  必须传入一个 query 表示查询条件
 * _add : ({data})       _add    必须传入一个 data 表示新增对象
 * _update: ({data})     _update 必须传一个 data 表示修改对象
 * _delete: ({data})     _delete 时，传入的data 可以是一个对象(以rowKey为ID)，也可以是一个ID的数组
 *                          另外说明，_delete 请求以 ids 为参数，多条记录删除时，以逗号分隔
 *
 * @param modelName dva 模块名字，不能重复
 * @param api 参考上文说明
 * @param objectName 对象的名字 默认为 '对象'
 * @param rowKey 每条数据的识别的主键 默认为 'id'
 * @param nameField 每条数据的名称字段 默认为空
 * @param pre 预处理的方法，如果定义的话，会预先执行此方法进行数据转换
 *
*/
declare function BuildModel(modelName: string, api: string | {
    query: string;
    del?: string;
    update?: string;
    add?: string;
}, objectName?: string, rowKey?: string, nameField?: string, pre?: (any: any) => any): any;
/**
 * 流式模型：可以通过下拉获取更多的数据
 */
export interface PullModelStatus {
    loadding: boolean;
    hasMore: boolean;
    list: any[];
}
export interface PullModelConfig {
    query: string;
    onChange: (evt: PullModelStatus) => void;
    onError?: () => void;
    context?: any;
    params?: any;
    pageSize?: number;
}
/**
 * 流式模型：可以通过下拉获取更多的数据
 */
export declare class PullModel {
    query: string;
    param: {};
    pageSize: number;
    list: any[];
    total: number;
    context: any;
    loadingFn: (e: any) => any;
    constructor(config: PullModelConfig);
    private callBack;
    reSearch(param: any): void;
    next(size?: number): Promise<void>;
}
declare const _default: {
    add: typeof add;
    update: typeof update;
    del: typeof del;
    doLoad: typeof doLoad;
    BuildModel: typeof BuildModel;
    PullModel: typeof PullModel;
};
export default _default;
