import { Entity, ViewModel, ViewModelState } from '@farris/devkit-vue';
import { FormLoadingService } from '../form-loading.service';
import { BaseDataService } from './base-data.service';
import { FormMessageService } from '../form-message.service';
import { FormNotifyService } from '../form-notify.service';
import { EntityChangeService } from '../entity-change.service';

export declare class ListDataService extends BaseDataService {
    private formLoadingService;
    private formMessageService;
    private formNotifyService;
    private entityChangeService;
    constructor(viewModel: ViewModel<ViewModelState>, formLoadingService: FormLoadingService, formMessageService: FormMessageService, formNotifyService: FormNotifyService, entityChangeService: EntityChangeService);
    /**
     * 加载数据
     * @param filter 过滤条件
     * @param sort 排序条件
     * @returns
     */
    load(filter?: string, sort?: string): Promise<Entity[]>;
    filter(filter?: string, sort?: string): Promise<Entity[]>;
    query(filter: string, sort: string, pageSize: number, pageIndex: number): Promise<Entity[]>;
    removeRows(ids: string[] | string, ifSave?: boolean | string, successMessage?: string): Promise<void>;
    /**
     * 删除数据
     * @param id 待删除数据的标识
     * @param ifSave 是否保存，默认保存
     * @param successMessage 删除成功后的提示信息
     * @returns
     */
    remove(id: string, ifSave?: boolean | string, successMessage?: string, confirm?: boolean | string, breakable?: boolean | string): Promise<undefined>;
    refreshAfterRemoving(loadCmdName: string, loadCmdFrameId: string): any;
    refresh(loadCmdName: string, loadCmdFrameId: string): any;
    append(): Promise<Entity>;
    insert(position: number | string): void;
    queryChild(filter: string, sort: string): void;
    save(successMessage?: string): Promise<void>;
    cancel(): Promise<boolean>;
    revert(): Promise<boolean>;
    refreshWhenConditionMet(condition: string, commandName: string, frameId: string): void;
    /**
     * 合并过滤条件
     * @param filters
     * @returns
     */
    private mergeFilterConditions;
    /**
     * 合并排序条件
     * @param sorts
     * @returns
     */
    private mergeSortConditions;
}
