import { ActiveRecord, ActiveRecords, Pagination, QueryContext, QueryPageResult, QueryVariables, RequestModelField, RuntimeM2MField } from '@oinone/kunlun-engine';
import { Entity } from '@oinone/kunlun-meta';
import { Condition } from '@oinone/kunlun-request';
import { ISort } from '@oinone/kunlun-service';
import { CallChaining, RSQLNodeInfo, TreeNode } from '@oinone/kunlun-shared';
import { CheckedChangeEvent, RadioChangeEvent } from '@oinone/kunlun-vue-ui';
import { ListPaginationStyle, ListSelectMode } from '@oinone/kunlun-vue-ui-antd';
import { VxeTablePropTypes } from 'vxe-table';
import { BaseRuntimePropertiesWidget } from '../common';
import { QueryExpression, RefreshProcessFunction } from '../types';
import { BaseElementViewWidget, BaseElementViewWidgetProps } from './BaseElementViewWidget';
export declare type BaseElementListViewWidgetProps = BaseElementViewWidgetProps;
/**
 * 列表类型数据基础组件（默认使用浏览器参数进行处理）
 */
export declare abstract class BaseElementListViewWidget<Props extends BaseElementListViewWidgetProps = BaseElementListViewWidgetProps> extends BaseElementViewWidget<Props> {
    getData(): ActiveRecord[] | undefined;
    setData(data: ActiveRecords | undefined, currentPage?: number): void;
    protected fieldWidgetMounted(widget: any): void;
    protected fieldWidgetUnmounted(widget: any): void;
    protected checkboxAllCallChaining: CallChaining | undefined;
    /**
     * 搜索数据
     * @protected
     */
    protected searchBody: ActiveRecord | undefined;
    /**
     * 搜索表达式
     * @protected
     */
    protected searchConditions: QueryExpression[] | undefined;
    protected searchCondition: TreeNode<RSQLNodeInfo> | undefined;
    /**
     * 根据搜索内容获取的列表数据
     *
     * @return  {ActiveRecord[]} 列表所有数据
     */
    get searchSortedDataSource(): ActiveRecord[] | undefined;
    /**
     *
     * 当前列表展示的数据
     */
    get showDataSource(): ActiveRecord[] | undefined;
    /**
     * 启用排序
     * @protected
     */
    protected get sortable(): boolean;
    /**
     * 默认排序字段
     * @protected
     * @example "field00003 desc,field00004 desc"
     * @returns [{sortField: "field00003", direction: "desc"}, {sortField: "field00004", direction:"desc"}]
     */
    protected get ordering(): ISort[] | undefined;
    protected get sortConfig(): VxeTablePropTypes.SortConfig;
    protected get defaultPageSizeOptions(): any[];
    /**
     * 排序参数
     * @protected
     */
    protected sortList: ISort[] | undefined;
    protected get showPagination(): boolean;
    protected get paginationStyle(): ListPaginationStyle;
    getPaginationStyle(): ListPaginationStyle;
    /**
     * 空数据提示
     */
    protected get emptyText(): any;
    /**
     * 空数据图片
     */
    protected get emptyImage(): any;
    /**
     * 分页选项
     */
    protected get pageSizeOptions(): number[];
    getPagination(): Pagination;
    /**
     * 分页参数
     * @protected
     */
    protected pagination: Pagination | undefined;
    /**
     * 默认分页数
     * @protected
     */
    protected get defaultPageSize(): number;
    /**
     * 加载函数命名空间
     * @protected
     * @deprecated 不允许手动设置函数命名空间
     */
    get loadFunctionNamespace(): string;
    /**
     * 加载函数名称，禁用数据加载时会指定为false
     * @protected
     */
    get loadFunctionFun(): string | undefined;
    /**
     * 获取数据
     * @protected
     */
    fetchData(condition?: Condition): Promise<ActiveRecord[]>;
    $$fetchData(condition?: Condition): Promise<Entity[]>;
    submitCacheProcess(dataSource: ActiveRecord[]): void;
    /**
     * 前端分页，当前页的数据被情况后，需要切换成正确的的分页
     */
    repairPaginationAfterDelete(): void;
    onPaginationChange(current: number, pageSize: number): void;
    onSortChange(sortList: ISort[]): void;
    protected get selectable(): boolean;
    protected get selectMode(): ListSelectMode;
    onCheckedChange(data: ActiveRecords, event?: CheckedChangeEvent): void;
    onCheckedAllChange(selected: boolean, data: ActiveRecord[], event?: CheckedChangeEvent): void;
    onRadioChange(data: ActiveRecord, event?: RadioChangeEvent): void;
    protected executeSearchExpression(searchWidget: BaseRuntimePropertiesWidget, expression: string): string | undefined;
    generatorCondition(condition?: Condition, usingSearchCondition?: boolean): Condition;
    protected generatorSearchBody(): ActiveRecord | undefined;
    protected testInitialContext(): void;
    /**
     * 是否前端搜索
     */
    get usingSearchCondition(): boolean;
    generatorSearchCondition(condition?: Condition): void;
    protected internalGeneratorSearchCondition(condition?: Condition): TreeNode<RSQLNodeInfo> | undefined;
    resetSearchCondition(): void;
    protected seekSearchRuntimeContext(): import("@oinone/kunlun-engine").RuntimeContext<unknown>;
    generatorPagination(): Pagination;
    generatorQuerySort(): ISort[];
    generatorQueryVariables(variables?: QueryVariables): QueryVariables;
    generatorQueryContext(context?: QueryContext): QueryContext;
    generatorRequestFields(): RequestModelField[];
    queryPage<T = ActiveRecord>(condition: Condition, pagination: Pagination, sort: ISort[], variables: QueryVariables, context: QueryContext): Promise<QueryPageResult<T>>;
    protected relationM2MQueryPage<T = ActiveRecord>(field: RuntimeM2MField, queryData: ActiveRecord, condition: Condition, pagination: Pagination, sort: ISort[], variables: QueryVariables, context: QueryContext): Promise<QueryPageResult<T>>;
    protected mountedProcess(): Promise<void>;
    protected parentRefreshProcess: RefreshProcessFunction | undefined;
    protected refreshProcess(condition?: Condition): Promise<void>;
    protected $$beforeMount(): void;
    protected $$mounted(): void;
    protected $$unmounted(): void;
    protected $$executeRefreshCallChaining(args: unknown[] | undefined): Promise<void>;
}
