import { Sysappfields, Sysappbuttons } from "fccore2";
import { GrandComponent } from "./grand.component";
import { FCEVENT } from "./fc";
import { FclistdataComponent } from "./fclist/fclistdata.component";
export declare abstract class ParentlistComponent extends GrandComponent {
    enableAutoSearch: boolean;
    pageList: any[];
    /** 修改对象集合，在列表批量修改时有效*/
    modifyObjs: any[];
    /**条件内容,字符串，必须符合json格式的字符串，当此字符串的值发生变化的时候，自动刷新列表。*/
    condition: string;
    /**查询条件对象内容，所有的查询条件绑定在此对象中。*/
    searchObj: any;
    /** 在列表中选中记录，是单个对象*/
    selectedObject: any;
    /** 选中的所有记录列，是集合对象*/
    selectedObjects: any[];
    /**默认的排序字段*/
    orderBy: string;
    /**分页总数*/
    pageTotal: number;
    /**分页索引*/
    pageNum: number;
    /**分页大小*/
    pageSize: number;
    /**列表字段集合*/
    mainFields: Sysappfields[];
    /**工具栏*/
    mainToolbar: Sysappbuttons[];
    /**列表操作按钮*/
    mainListButtons: Sysappbuttons[];
    /**子列表组件*/
    listWnd: FclistdataComponent;
    /**
     * 根据模型及产品id初始化父类,当此类不具有mid，和模型id的时候，可以不传
     * @param pid 产品id
     * @param aid 模型id
     */
    constructor(pid?: string, aid?: string);
    /**
     * 初始化当前对象内容
     */
    _init(): void;
    ngOnInit(): void;
    /**
        * 初始化条件
        */
    private _initCondition;
    /**
     * 子类初始化
     */
    abstract init(): void;
    /**
     * 子类默认调用对象
     */
    private query;
    /**
    * 获取默认的查询条件
    */
    abstract getDefaultQuery(): any;
    /**
     * 查询重置
     **/
    reset(): void;
    /**
     * 查询条件变化的时候调用
     */
    searchObjModelChange(key: any, value: any): void;
    /**
     * 获取查询条件内容
     * @param event
     */
    search(event?: FCEVENT): any;
    /**
     * 分页事件 事件名称，param
     * @param event {eventName:,param:}
     */
    pageQuery(event: FCEVENT): void;
    /**
     * 删除之前的操作
     * @param mainObj
     */
    beforeDelete(mainObj: any): boolean;
    /**
     * 删除之后的操作
     */
    afterDelete(): void;
    /**
     * 列表新增
     * @param event
     */
    listAdd(event?: FCEVENT): void;
    /**
     * 列表编辑
     * @param event
     */
    listEdit(event: FCEVENT): void;
    /**
     * 列表编辑
     * @param event
     */
    listOneEdit(event: FCEVENT): void;
    /**
     * 编辑之前的操作
     */
    beforeEdit(): boolean;
    /**
     * 删除一条记录
     * @param context
     */
    listOneDelete(context: any): void;
    /**
     * 列表批量删除
     * @param event
     */
    listDelete(event: FCEVENT): void;
    /**
     * 列表帮助
     * @param action
     */
    listHelp(action: string): void;
    /**
     * 列表导入
     * @param action
     */
    import(action: string): void;
    /**
     * 列表导出
     * @param action
     */
    export(action: string): void;
    /**
     * 列表工具栏处理事件
     * @param event 事件名称
     */
    tlblistEvent(event: FCEVENT): void;
    /**
     * 查询事件处理
     * @param event 查询事件参数
     */
    searchlistEvent(event: FCEVENT): void;
    /**
     * 自定义事件名称
     * @param eventName 事件名称
     * @param context 上下午环境
     */
    abstract event(eventName: string, context: any): void;
    /**
     * 跳转至新增页面
     * @param params 路由参数
     */
    navigateAdd(params?: any): void;
    /**
     * 跳转至修改页面
     * @param event 当前事件句柄
     * @return promise
     */
    navigateModify(event: FCEVENT): Promise<any>;
    /**
     * 跳转至详情页面
     * @param event 当前事件句柄
     * @return promise
     */
    navigateDetail(event: FCEVENT): Promise<any>;
    /**
     * 单元格选中
     * @param event
     */
    cellClick(event: FCEVENT): void;
    /**
    * 根据列表处理事件
    * @param action 事件名称
    */
    listdataEvent(event: FCEVENT): void;
    /**
     * 页面size改变
     * @param event
     */
    pageSizeChange(event: FCEVENT): void;
    /**
     * 跳转至页面
     * @param event
     */
    jumpPage(event: FCEVENT): void;
    /**
     * 选中的数据对象及反选
     * @param event
     */
    onSelect(event: FCEVENT): void;
    /**
     * 在列表中编辑数据对象放入编辑对象中
     * @param event
     */
    onModify(event: FCEVENT): void;
    /**
     * 点赞
     * @param event
     */
    thumbUp(event: any): void;
    /**
     * 下载
     * @param event
     */
    download(event: any): void;
    /**
     * 评论
     * @param event
     */
    evaluate(event: any): void;
    /**
     * 统计
     * @param event
     */
    count(event: any): void;
}
