import { PropType } from 'vue';
import { default as Field } from '../../types/Field.ts';
import { TableRowMeta } from '../../types/TableRow.ts';
declare const _default: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
    /**
     * Field list
     */
    fields: {
        type: PropType<Field[]>;
        required: true;
    };
    /**
     * Item list
     */
    items: {
        type: PropType<Array<Record<string, any> & TableRowMeta>>;
        required: true;
    };
    /**
     * Items loading
     */
    isLoading: {
        type: BooleanConstructor;
        default: boolean;
    };
    /**
     * Order by field name
     */
    orderBy: {
        type: StringConstructor;
        default: undefined;
    };
    /**
     * Sort is descending or ascending
     */
    sortDesc: {
        type: BooleanConstructor;
        default: undefined;
    };
    /**
     * th element css lass
     */
    thClass: {
        type: StringConstructor;
        default: undefined;
    };
    /**
     * td element css class
     */
    tdClass: {
        type: StringConstructor;
        default: undefined;
    };
    /**
     * row is clickable
     */
    rowClickable: {
        type: BooleanConstructor;
        default: boolean;
    };
    emptyText: {
        type: StringConstructor;
        default: undefined;
    };
    sortAscIconClass: {
        type: StringConstructor;
        default: string;
    };
    sortDescIconClass: {
        type: StringConstructor;
        default: string;
    };
    /**
     * Use skeleton loading instead of spinner when isLoading is true
     */
    skeletonLoading: {
        type: BooleanConstructor;
        default: boolean;
    };
    skeletonLoadingRowCount: {
        type: NumberConstructor;
        default: number;
    };
}>, {}, {}, {}, {
    /**
     * Is order by active by field?
     *
     * @param fieldKey
     * @returns {boolean}
     */
    isActiveOrderBy(fieldKey: string): boolean;
    /**
     * Is field sortable?
     *
     * @param field
     * @returns {boolean}
     */
    isSortableField(field: Field): boolean;
    /**
     * Sort icon class.
     *
     * @returns {string}
     */
    getSortIconClass(): string;
    /**
     * Calcuate sort desc value on click
     * Returns null if there is no sortDesc value.
     */
    calcSortDesc(fieldKey: string): boolean | null;
    /**
     * Is order by changed?
     */
    isOrderByChanged(fieldKey: string): boolean;
    /**
     * Table head clicked.
     */
    onHeadClick(field: Field): void;
}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, ("orderChanged" | "rowClicked")[], "orderChanged" | "rowClicked", import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
    /**
     * Field list
     */
    fields: {
        type: PropType<Field[]>;
        required: true;
    };
    /**
     * Item list
     */
    items: {
        type: PropType<Array<Record<string, any> & TableRowMeta>>;
        required: true;
    };
    /**
     * Items loading
     */
    isLoading: {
        type: BooleanConstructor;
        default: boolean;
    };
    /**
     * Order by field name
     */
    orderBy: {
        type: StringConstructor;
        default: undefined;
    };
    /**
     * Sort is descending or ascending
     */
    sortDesc: {
        type: BooleanConstructor;
        default: undefined;
    };
    /**
     * th element css lass
     */
    thClass: {
        type: StringConstructor;
        default: undefined;
    };
    /**
     * td element css class
     */
    tdClass: {
        type: StringConstructor;
        default: undefined;
    };
    /**
     * row is clickable
     */
    rowClickable: {
        type: BooleanConstructor;
        default: boolean;
    };
    emptyText: {
        type: StringConstructor;
        default: undefined;
    };
    sortAscIconClass: {
        type: StringConstructor;
        default: string;
    };
    sortDescIconClass: {
        type: StringConstructor;
        default: string;
    };
    /**
     * Use skeleton loading instead of spinner when isLoading is true
     */
    skeletonLoading: {
        type: BooleanConstructor;
        default: boolean;
    };
    skeletonLoadingRowCount: {
        type: NumberConstructor;
        default: number;
    };
}>> & Readonly<{
    onOrderChanged?: ((...args: any[]) => any) | undefined;
    onRowClicked?: ((...args: any[]) => any) | undefined;
}>, {
    isLoading: boolean;
    orderBy: string;
    sortDesc: boolean;
    thClass: string;
    tdClass: string;
    rowClickable: boolean;
    emptyText: string;
    sortAscIconClass: string;
    sortDescIconClass: string;
    skeletonLoading: boolean;
    skeletonLoadingRowCount: number;
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
export default _default;
