import type { ExtractPropTypes } from 'vue';
import type { SortOrder } from './constants';
import type { Column, ColumnCommonParams, DataGetter, KeyType, RowCommonParams, SortBy, SortState } from './types';
/**
 * Param types
 */
export declare type ColumnSortParams<T> = {
    column: Column<T>;
    key: KeyType;
    order: SortOrder;
};
/**
 * Renderer/Getter types
 */
export declare type ExtraCellPropGetter<T> = (params: ColumnCommonParams<T> & RowCommonParams & {
    cellData: T;
    rowData: any;
}) => any;
export declare type ExtractHeaderPropGetter<T> = (params: {
    columns: Column<T>[];
    headerIndex: number;
}) => any;
export declare type ExtractHeaderCellPropGetter<T> = (params: ColumnCommonParams<T> & {
    headerIndex: number;
}) => any;
export declare type ExtractRowPropGetter<T> = (params: {
    columns: Column<T>[];
} & RowCommonParams) => any;
export declare type HeaderClassNameGetter<T> = (params: {
    columns: Column<T>[];
    headerIndex: number;
}) => string;
export declare type RowClassNameGetter<T> = (params: {
    columns: Column<T>[];
} & RowCommonParams) => string;
/**
 * Handler types
 */
export declare type ColumnSortHandler<T> = (params: ColumnSortParams<T>) => void;
export declare type ColumnResizeHandler<T> = (column: Column<T>, width: number) => void;
export declare type ExpandedRowsChangeHandler = (expandedRowKeys: KeyType[]) => void;
export declare const tableV2Props: {
    readonly cache: import("hongluan-ui/es/utils").EpPropFinalized<import("vue").PropType<number>, unknown, unknown, number, boolean>;
    readonly estimatedRowHeight: {
        readonly type: import("vue").PropType<number>; /**
         * Attributes
         */
        readonly required: false;
        readonly validator: (val: unknown) => boolean;
        __epPropKey: true;
    };
    readonly rowKey: import("hongluan-ui/es/utils").EpPropFinalized<import("vue").PropType<KeyType>, unknown, unknown, "id", boolean>;
    readonly headerClass: {
        readonly type: import("vue").PropType<import("hongluan-ui/es/utils").EpPropMergeType<import("vue").PropType<string | HeaderClassNameGetter<any>>, unknown, unknown>>; /**
         * Attributes
         */
        readonly required: false;
        readonly validator: (val: unknown) => boolean;
        __epPropKey: true;
    };
    readonly headerProps: {
        readonly type: import("vue").PropType<any>; /**
         * Attributes
         */
        readonly required: false;
        readonly validator: (val: unknown) => boolean;
        __epPropKey: true;
    };
    readonly headerCellProps: {
        readonly type: import("vue").PropType<any>; /**
         * Attributes
         */
        readonly required: false;
        readonly validator: (val: unknown) => boolean;
        __epPropKey: true;
    };
    readonly headerHeight: import("hongluan-ui/es/utils").EpPropFinalized<import("vue").PropType<number | number[]>, unknown, unknown, 50, boolean>;
    readonly footerHeight: import("hongluan-ui/es/utils").EpPropFinalized<NumberConstructor, unknown, unknown, 0, boolean>;
    readonly rowClass: {
        readonly type: import("vue").PropType<import("hongluan-ui/es/utils").EpPropMergeType<import("vue").PropType<string | RowClassNameGetter<any>>, unknown, unknown>>; /**
         * Attributes
         */
        readonly required: false;
        readonly validator: (val: unknown) => boolean;
        __epPropKey: true;
    };
    readonly rowProps: {
        readonly type: import("vue").PropType<any>; /**
         * Attributes
         */
        readonly required: false;
        readonly validator: (val: unknown) => boolean;
        __epPropKey: true;
    };
    readonly rowHeight: import("hongluan-ui/es/utils").EpPropFinalized<NumberConstructor, unknown, unknown, 50, boolean>;
    readonly cellProps: {
        readonly type: import("vue").PropType<unknown>; /**
         * Attributes
         */
        readonly required: false;
        readonly validator: (val: unknown) => boolean;
        __epPropKey: true;
    };
    readonly columns: {
        readonly type: import("vue").PropType<import("./common").AnyColumn[]>; /**
         * Attributes
         */
        readonly required: true;
        readonly validator: (val: unknown) => boolean;
        __epPropKey: true;
    };
    readonly data: {
        readonly type: import("vue").PropType<any[]>; /**
         * Attributes
         */
        readonly required: true;
        readonly validator: (val: unknown) => boolean;
        __epPropKey: true;
    };
    readonly dataGetter: {
        readonly type: import("vue").PropType<DataGetter<any>>; /**
         * Attributes
         */
        readonly required: false;
        readonly validator: (val: unknown) => boolean;
        __epPropKey: true;
    };
    readonly fixedData: {
        readonly type: import("vue").PropType<any[]>; /**
         * Attributes
         */
        readonly required: false;
        readonly validator: (val: unknown) => boolean;
        __epPropKey: true;
    };
    readonly expandColumnKey: StringConstructor;
    readonly expandedRowKeys: import("hongluan-ui/es/utils").EpPropFinalized<import("vue").PropType<KeyType[]>, unknown, unknown, () => any[], boolean>;
    readonly defaultExpandedRowKeys: import("hongluan-ui/es/utils").EpPropFinalized<import("vue").PropType<KeyType[]>, unknown, unknown, () => any[], boolean>;
    readonly class: StringConstructor;
    readonly fixed: BooleanConstructor;
    readonly style: {
        readonly type: import("vue").PropType<any>; /**
         * Attributes
         */
        readonly required: false;
        readonly validator: (val: unknown) => boolean;
        __epPropKey: true;
    };
    readonly width: {
        readonly type: import("vue").PropType<number>; /**
         * Attributes
         */
        readonly required: true;
        readonly validator: (val: unknown) => boolean;
        __epPropKey: true;
    };
    readonly height: {
        readonly type: import("vue").PropType<number>; /**
         * Attributes
         */
        readonly required: true;
        readonly validator: (val: unknown) => boolean;
        __epPropKey: true;
    };
    readonly maxHeight: NumberConstructor;
    readonly useIsScrolling: BooleanConstructor;
    readonly indentSize: import("hongluan-ui/es/utils").EpPropFinalized<NumberConstructor, unknown, unknown, 12, boolean>;
    readonly iconSize: import("hongluan-ui/es/utils").EpPropFinalized<NumberConstructor, unknown, unknown, 12, boolean>;
    readonly hScrollbarSize: import("hongluan-ui/es/utils").EpPropFinalized<NumberConstructor, unknown, unknown, 6, boolean>;
    readonly vScrollbarSize: import("hongluan-ui/es/utils").EpPropFinalized<NumberConstructor, unknown, unknown, 6, boolean>;
    readonly scrollbarAlwaysOn: BooleanConstructor;
    readonly sortBy: import("hongluan-ui/es/utils").EpPropFinalized<import("vue").PropType<SortBy>, unknown, unknown, () => {
        key: KeyType;
        order: SortOrder;
    }, boolean>;
    readonly sortState: {
        readonly type: import("vue").PropType<SortState>; /**
         * Attributes
         */
        readonly required: false;
        readonly validator: (val: unknown) => boolean;
        __epPropKey: true;
    };
    readonly onColumnSort: {
        readonly type: import("vue").PropType<ColumnSortHandler<any>>; /**
         * Attributes
         */
        readonly required: false;
        readonly validator: (val: unknown) => boolean;
        __epPropKey: true;
    };
    readonly onExpandedRowsChange: {
        readonly type: import("vue").PropType<ExpandedRowsChangeHandler>; /**
         * Attributes
         */
        readonly required: false;
        readonly validator: (val: unknown) => boolean;
        __epPropKey: true;
    };
    readonly onEndReached: {
        readonly type: import("vue").PropType<(distance: number) => void>; /**
         * Attributes
         */
        readonly required: false;
        readonly validator: (val: unknown) => boolean;
        __epPropKey: true;
    };
    readonly onRowExpand: {
        readonly type: import("vue").PropType<import("./row").RowExpandHandler>; /**
         * Attributes
         */
        readonly required: false;
        readonly validator: (val: unknown) => boolean;
        __epPropKey: true;
    };
    readonly onScroll: {
        readonly type: import("vue").PropType<(...args: any[]) => void>; /**
         * Attributes
         */
        readonly required: false;
        readonly validator: (val: unknown) => boolean;
        __epPropKey: true;
    };
    readonly onRowsRendered: {
        readonly type: import("vue").PropType<(params: import("./grid").onRowRenderedParams) => void>; /**
         * Attributes
         */
        readonly required: false;
        readonly validator: (val: unknown) => boolean;
        __epPropKey: true;
    };
    readonly rowEventHandlers: {
        readonly type: import("vue").PropType<unknown>; /**
         * Attributes
         */
        readonly required: false;
        readonly validator: (val: unknown) => boolean;
        __epPropKey: true;
    };
};
export declare type TableV2Props = ExtractPropTypes<typeof tableV2Props>;
