import { DateRange, DateRangeCondition, Order, SimpleCondition } from '../page';
import { default as QueryModel } from '../page/QueryModel';
import { default as Operator } from '../page/Operator';
/**
 * 定义组合式函数(函数名需要以 use 开头):  https://staging-cn.vuejs.org/guide/reusability/composables.html
 * 使用 {CompositeQuery} 条件查询的列表
 * @param queryCall 查询列表数据的回调函数
 * @param options 参数设置
 */
export declare function useQuery(queryCall: Function | undefined, options?: any): {
    dataSource: any[];
    loading: {
        spinning: boolean;
        tip: any;
    };
    param: {
        param: {
            simple: {
                field: string;
                operator: Operator;
                value: any;
            }[];
            dateRange: {
                range: DateRange;
                field: string;
                start: string | null;
                end: string | null;
            }[];
        };
        updateSimpleCondition: (condition: SimpleCondition) => void;
        removeSimpleCondition: (field: String) => void;
        updateDateRangeCondition: (condition: DateRangeCondition) => void;
        removeDateRangeCondition: (field: String) => void;
        pageIndex: number;
        pageSize: number;
        orders: {
            field: string;
            desc: boolean;
        }[];
        setPageIndex: (pageIndex: number) => void;
        setPageSize: (pageSize: number) => void;
        updateOrder: (order: Order) => void;
        removeOrder: (orderField: string) => void;
    } | {
        param: Object;
        updateParamValue: (field: String, value: Object) => void;
        pageIndex: number;
        pageSize: number;
        orders: {
            field: string;
            desc: boolean;
        }[];
        setPageIndex: (pageIndex: number) => void;
        setPageSize: (pageSize: number) => void;
        updateOrder: (order: Order) => void;
        removeOrder: (orderField: string) => void;
    };
    pagination: {
        total: number;
        position: any;
        current: number;
        defaultPageSize: number;
        pageSizeOptions: string[];
        showTotal: (total: number) => string;
        showQuickJumper: any;
        showSizeChanger: any;
    };
    startLoading: () => void;
    stopLoading: () => void;
    tableChange: (pagination: any, filters: any, sorter: any) => Promise<Object>;
    searchHandler: () => Promise<Object>;
    updateParamValue: (field: string, value: any, operator?: Operator) => void;
    tagChange: (field: string, dateRange: any) => void;
    customDateChange: (field: string, date: any) => void;
    addDefaultObjParam: (query: QueryModel, param: any) => void;
    addDefaultParam: (query: QueryModel) => void;
    loadingData: (query?: QueryModel) => Promise<Object>;
};
