import Vue, { VNode, CreateElement } from "vue";
import { ParameterModel} from 'hq-tools';
export declare interface TableColumnRenderParams<T=any>{
    /**
     * 当前行数据
     */
    row?: T;
    /**
     * 原始数据
     */
    origin?: T;
    /**
     * 当前列数据
     */
    column?: any;
    /**
     * 当前行索引
     */
    index?: number;
}
export declare class TableColumnRenderHeadParams<T=any> {
    /**
     * 当前列数据
     */
    column?: T;
    /**
     * 当前行索引
     */
    index?: number;
}
export declare class Column {
    title?: string;
    key?: string;
    width?: number;
    minWidth?: number;
    maxWidth?: number;
    align?: "left" | "right" | "center";
    className?: string;
    fixed?: "left" | "right";
    ellipsis?: boolean;
    tooltip?: boolean;
    template?:string;
    renderHeader?: (
        h: CreateElement,
        params: TableColumnRenderHeadParams
    ) => VNode;
    indexMethod?: (row?: object) => string | number;
    slot?: string;
    sortable?: boolean | "custom";
    sortMethod?: (a: any, b: any, type: "asc" | "desc") => void;
    sortType?: "asc" | "desc";
    filters?: { label: string; value: string | number | boolean }[];
    filterMethod?: () => void;
    filterMultiple?: boolean;
    filteredValue?: (string | number | boolean)[];
    filterRemote?: () => void;
    children?: object[];
    dict?:string;
    type?:string;
    format?:string;
    fastqueryType?:string;
    asyncTranslate?:string;
    btnOptions?:BtnOption[];
    export?:boolean;
    renderFcn?: (
        h: CreateElement,
        params: TableColumnRenderParams
    ) => VNode;
}
export declare interface BtnOption{
    type?: string,
    size?: string,
    icon?: string,
    name?: string,
    text?: string,
    style?: any,
}
export declare class HongqiTable{
    name?:string;
    index?:boolean;
    selection?:boolean;
    exportExcel?:boolean;
    columns?:Column[];
    dicts?:Object;
    loadURL?:string;
    data?:any[];
    fastQueryParameters?:ParameterModel[];
    externalParameters?:any[];
    externalObj?:Object;
    value?:boolean;
    page?:boolean;
    pageSizeOpts?:number[];
    toolbar?:string[] | boolean;
    exportFileName?:string;
    size?:string;
    headerTool?:boolean;
    height?:number;
    maxHeight?:number;
    subtotal?:string;
    stripe?:boolean;
    border?:boolean;
    showHeader?:boolean;
    width?:string|number;
    disabledHover?:boolean;
    rowClassName?:string;
    noDataText?:string;
    draggable?:boolean;
    tooltipTheme?:string;
    rowKey?:boolean;

    getData():void;

    $emit(
        eventName: "input",
        input: boolean
    ): this;

    $emit(
        eventName: "selection",
        selection: any[]
    ): this;

    $emit(
        eventName: "btnclick",
        params: any
    ): this;

    $emit(
        eventName: "on-drag-drop",
        index1: number,
        index2:number
    ): this;

}