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

export declare class TreeDataService extends BaseDataService {
    viewModel: ViewModel<ViewModelState>;
    private formLoadingService;
    private formNotifyService;
    private formMessageService;
    private stateService;
    private entityChangeService;
    constructor(viewModel: ViewModel<ViewModelState>, formLoadingService: FormLoadingService, formNotifyService: FormNotifyService, formMessageService: FormMessageService, stateService: StateService, entityChangeService: EntityChangeService);
    load(filters?: string, sorts?: string): Promise<any>;
    loadByLevel(filters?: string, sorts?: string, frozenCurrentRow?: boolean | string): void;
    loadFullTree(virtualPropertyName: string, fullTreeType: string, loadType: string, filters: string, frozenCurrentRow?: boolean | string): void;
    addSibling(id: string): Promise<Entity> | undefined;
    /**
     * 新增子级
     * @param id
     * @returns
     */
    addChild(id: string): Promise<Entity> | undefined;
    remove(id: string, successMessage?: string): Promise<void | undefined>;
    save(): Promise<boolean>;
    cancel(): Promise<boolean> | Promise<void>;
    setCurrentId(id: string): void;
    selectFirstRow(): void;
    /**
     * 获取树数据仓库
     * @param hierarchyType
     * @returns
     */
    private getTreeRepository;
    /**
     * 获取分级码信息
     * @returns
     */
    private getHierarchyType;
    private getHierarchyKey;
    private getParentOrSiblingNodeId;
    private getNextSelectNodeId;
    private getTreeService;
    private get lastModifiedId();
    private set lastModifiedId(value);
    private parseConditions;
}
