import { AppComponentBaseDirective } from './app-component-base';
import { Injector, OnInit } from '@angular/core';
import { ISortCondition, PagedRequestDto, PagedResultDto, SortType } from './interfaces';
import { STChange } from '@delon/abc/st';
import * as i0 from "@angular/core";
/**
 * 分页列表基类，包含一些分页通用方法。注意 派生类中的 `ngOnInit` 会覆盖此类中的此方法。
 */
export declare abstract class PagedListingComponentBaseDirective<TEntity> extends AppComponentBaseDirective implements OnInit {
    /** 分页大小 */
    pageSize: number;
    /** 当前页 */
    pageSizeOptions: number[];
    /** 当前页 */
    pageNumber: number;
    /** 总页数 */
    totalPages: number;
    /** 总记录数 */
    totalItems: number;
    /** 数据是否处于加载状态 */
    isTableLoading: boolean;
    /** 是否全部选中 */
    allChecked: boolean;
    /** 全选框是否禁用 */
    allCheckboxDisabled: boolean;
    /** 选择框非全选状态，控制全选框的样式：☒ */
    checkboxIndeterminate: boolean;
    /** 已选中数据项列表 */
    selectedDataItems: any[];
    /** 排序条件 - 表达式 */
    sortConditions: ISortCondition[];
    /** 排序 */
    sorting: string;
    /** 模糊搜索的文本 */
    filterText: string;
    /** 数据表的数据源 */
    dataList: TEntity[];
    /**
     * 构造函数
     * @param injector 注入器
     * @param nzModalRef (optional) nzModal 模态框关闭、销毁等处理帮助，只能在modal中打开的组件中注入，非modal打开的组件注入null即可，否则报错。因为nzModalRef是建立在nzModalComponent之上的。
     */
    constructor(injector: Injector);
    ngOnInit(): void;
    /** 刷新表格数据 */
    refresh(): void;
    /** 刷新表格数据并跳转到第一页（`pageNumber = 1`） */
    refreshGoFirstPage(): void;
    /** 布尔类型表格列头过滤列表 */
    booleanFilterList: any[];
    /** 获取数据页 */
    getDataPage(page: number): void;
    /** 刷新全选框是否禁用 */
    refreshAllCheckBoxDisabled(): void;
    /** 当页码发生改变 */
    pageNumberChange(): void;
    /**
     * 选中全部记录
     * @param value 是否选中
     */
    checkAll(value: boolean): void;
    /**
     * 刷新选中状态
     * @param entityList 数据集合
     */
    refreshCheckStatus(entityList: any[]): void;
    /**
     * 重置选中状态
     * @param entityList 数据集合
     */
    restCheckStatus(entityList: any[]): void;
    /**
     * 计算分页
     * @param result 分页结果Dto
     * @param pageNumber 当前页码
     */
    showPaging(result: PagedResultDto): void;
    /** 排序条件发生改变 */
    onSortChange(sortConditions: ISortCondition[], sorting: string): void;
    /** 数据表格排序 */
    gridSort(sort: {
        key: string;
        value: string;
    }): void;
    /**
     * 权限列表验证
     * @param permissions 权限名称列表
     */
    isGrantedAny(...permissions: string[]): boolean;
    /** st change事件 */
    stChange(e: STChange): void;
    /** STChange 转 sort cond */
    protected toSortConditions(sortMap: {
        [name: string]: SortType;
    }): ISortCondition[];
    /** STChange 转 sorting */
    protected toSortingString(sortMap: {
        [name: string]: SortType;
    }): string;
    /** 预处理sorting数据 */
    protected processSorting(input: STChange): {
        [name: string]: SortType;
    };
    /**
     * 获取数据抽象接口，必须实现
     * @param request 请求必需参数 skipCount: number; maxResultCount: number;
     * @param pageNumber 当前页码
     * @param finishedCallback 完成后回调函数
     */
    protected abstract fetchDataList(request: PagedRequestDto, pageNumber: number, finishedCallback?: () => void): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<PagedListingComponentBaseDirective<any>, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<PagedListingComponentBaseDirective<any>, never, never, {}, {}, never>;
}
