import type { PropType } from '@vue/composition-api';
import type { CreateElement } from 'vue';
import type { PopupProps } from '../popup';
import type { AttachNode } from '../common';
import type { FilterValue, PrimaryTableCol } from './type';
export interface TableFilterControllerProps {
    tFilterValue: FilterValue;
    innerFilterValue: FilterValue;
    tableFilterClasses: {
        filterable: string;
        popup: string;
        icon: string;
        popupContent: string;
        result: string;
        inner: string;
        bottomButtons: string;
        contentInner: string;
        iconWrap: string;
    };
    isFocusClass: string;
    column: PrimaryTableCol;
    colIndex: number;
    primaryTableElement: HTMLDivElement;
    popupProps: PopupProps;
    attach?: AttachNode;
}
declare const _default: import("vue").ComponentOptions<import("vue").default, import("@vue/composition-api").ShallowUnwrapRef<{
    t: <T>(pattern: T, ...args: any[]) => any;
    global: import("@vue/composition-api").Ref<{
        cancelText?: string;
        clearFilterResultButtonText?: string;
        columnConfigButtonText?: string;
        columnConfigDescriptionText?: string;
        columnConfigTitleText?: string;
        confirmText?: string;
        empty?: string | ((h: CreateElement) => import("vue/types/vnode").ScopedSlotReturnValue);
        expandIcon?: (h: CreateElement) => import("vue/types/vnode").ScopedSlotReturnValue;
        filterIcon?: (h: CreateElement) => import("vue/types/vnode").ScopedSlotReturnValue;
        hideSortTips?: boolean;
        loadingMoreText?: string;
        loadingText?: string;
        resetText?: string;
        searchResultText?: string;
        selectAllText?: string;
        sortAscendingOperationText?: string;
        sortCancelOperationText?: string;
        sortDescendingOperationText?: string;
        sortIcon?: (h: CreateElement) => import("vue/types/vnode").ScopedSlotReturnValue;
        treeExpandAndFoldIcon?: (h: CreateElement, props: {
            type: "expand" | "fold";
        }) => import("vue/types/vnode").ScopedSlotReturnValue;
    }>;
    FilterIcon: import("@ldesign/icons-vue").GlobalIconType;
    filterPopupVisible: import("@vue/composition-api").Ref<boolean>;
    triggerElementRef: import("@vue/composition-api").Ref<HTMLDivElement>;
    renderTNode: (name: string, options?: import("vue").VNode | import("../hooks/render-tnode").JSXRenderContext) => any;
    onFilterPopupVisibleChange: (visible: boolean) => void;
}> & import("@vue/composition-api").Data, {}, {}, {
    column: PropType<PrimaryTableCol<import("./type").TableRowData>>;
    colIndex: NumberConstructor;
    tFilterValue: PropType<FilterValue>;
    innerFilterValue: PropType<FilterValue>;
    tableFilterClasses: PropType<{
        filterable: string;
        popup: string;
        icon: string;
        popupContent: string;
        result: string;
        inner: string;
        bottomButtons: string;
        contentInner: string;
        iconWrap: string;
    }>;
    isFocusClass: StringConstructor;
    primaryTableElement: {};
    popupProps: PropType<import("../popup").TdPopupProps>;
    attach: PropType<AttachNode>;
}, import("@vue/composition-api").ExtractPropTypes<{
    column: PropType<PrimaryTableCol<import("./type").TableRowData>>;
    colIndex: NumberConstructor;
    tFilterValue: PropType<FilterValue>;
    innerFilterValue: PropType<FilterValue>;
    tableFilterClasses: PropType<{
        filterable: string;
        popup: string;
        icon: string;
        popupContent: string;
        result: string;
        inner: string;
        bottomButtons: string;
        contentInner: string;
        iconWrap: string;
    }>;
    isFocusClass: StringConstructor;
    primaryTableElement: {};
    popupProps: PropType<import("../popup").TdPopupProps>;
    attach: PropType<AttachNode>;
}>> & Omit<import("vue").VueConstructor<import("vue").default>, never> & (new (...args: any[]) => import("@vue/composition-api").ComponentRenderProxy<{} & {
    attach?: AttachNode;
    popupProps?: unknown;
    column?: unknown;
    tableFilterClasses?: {
        filterable: string;
        popup: string;
        icon: string;
        popupContent: string;
        result: string;
        inner: string;
        bottomButtons: string;
        contentInner: string;
        iconWrap: string;
    };
    colIndex?: number;
    isFocusClass?: string;
    tFilterValue?: unknown;
    innerFilterValue?: unknown;
    primaryTableElement?: unknown;
}, import("@vue/composition-api").ShallowUnwrapRef<{
    t: <T>(pattern: T, ...args: any[]) => any;
    global: import("@vue/composition-api").Ref<{
        cancelText?: string;
        clearFilterResultButtonText?: string;
        columnConfigButtonText?: string;
        columnConfigDescriptionText?: string;
        columnConfigTitleText?: string;
        confirmText?: string;
        empty?: string | ((h: CreateElement) => import("vue/types/vnode").ScopedSlotReturnValue);
        expandIcon?: (h: CreateElement) => import("vue/types/vnode").ScopedSlotReturnValue;
        filterIcon?: (h: CreateElement) => import("vue/types/vnode").ScopedSlotReturnValue;
        hideSortTips?: boolean;
        loadingMoreText?: string;
        loadingText?: string;
        resetText?: string;
        searchResultText?: string;
        selectAllText?: string;
        sortAscendingOperationText?: string;
        sortCancelOperationText?: string;
        sortDescendingOperationText?: string;
        sortIcon?: (h: CreateElement) => import("vue/types/vnode").ScopedSlotReturnValue;
        treeExpandAndFoldIcon?: (h: CreateElement, props: {
            type: "expand" | "fold";
        }) => import("vue/types/vnode").ScopedSlotReturnValue;
    }>;
    FilterIcon: import("@ldesign/icons-vue").GlobalIconType;
    filterPopupVisible: import("@vue/composition-api").Ref<boolean>;
    triggerElementRef: import("@vue/composition-api").Ref<HTMLDivElement>;
    renderTNode: (name: string, options?: import("vue").VNode | import("../hooks/render-tnode").JSXRenderContext) => any;
    onFilterPopupVisibleChange: (visible: boolean) => void;
}>, import("@vue/composition-api").Data, {}, {}, {}, {}, {}, {} & {
    attach?: AttachNode;
    popupProps?: unknown;
    column?: unknown;
    tableFilterClasses?: {
        filterable: string;
        popup: string;
        icon: string;
        popupContent: string;
        result: string;
        inner: string;
        bottomButtons: string;
        contentInner: string;
        iconWrap: string;
    };
    colIndex?: number;
    isFocusClass?: string;
    tFilterValue?: unknown;
    innerFilterValue?: unknown;
    primaryTableElement?: unknown;
}, {}, true>);
export default _default;
