import { t } from '@das-fed/web';
import { ElTableColumn } from 'element-plus';
import 'element-plus/es/components/table/style/css';
import { vDasTooltip, DasIcon, DasTooltip } from '@das-fed/ui';
import filterPane from '../filter-pane/filterPane.vue';
import type { Props } from './type';
declare const tableColumn: import("vue").Ref<import("vue").CreateComponentPublicInstanceWithMixins<Readonly<import("vue").ExtractPropTypes<{
    type: {
        type: StringConstructor;
        default: string;
    };
    label: StringConstructor;
    className: StringConstructor;
    labelClassName: StringConstructor;
    property: StringConstructor;
    prop: StringConstructor;
    width: {
        type: (NumberConstructor | StringConstructor)[];
        default: string;
    };
    minWidth: {
        type: (NumberConstructor | StringConstructor)[];
        default: string;
    };
    renderHeader: import("vue").PropType<(data: {
        column: import("element-plus").TableColumnCtx<any>;
        $index: number;
    }) => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
        [key: string]: any;
    }>>;
    sortable: {
        type: (BooleanConstructor | StringConstructor)[];
        default: boolean;
    };
    sortMethod: import("vue").PropType<(a: any, b: any) => number>;
    sortBy: import("vue").PropType<string | string[] | ((row: any, index: number) => string)>;
    resizable: {
        type: BooleanConstructor;
        default: boolean;
    };
    columnKey: StringConstructor;
    align: StringConstructor;
    headerAlign: StringConstructor;
    showOverflowTooltip: {
        type: import("vue").PropType<boolean | Partial<Pick<import("element-plus").ElTooltipProps, "offset" | "effect" | "placement" | "popperClass" | "showAfter" | "hideAfter" | "popperOptions" | "enterable" | "showArrow">> | undefined>;
        default: undefined;
    };
    fixed: (BooleanConstructor | StringConstructor)[];
    formatter: import("vue").PropType<(row: any, column: import("element-plus").TableColumnCtx<any>, cellValue: any, index: number) => string | import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
        [key: string]: any;
    }>>;
    selectable: import("vue").PropType<(row: any, index: number) => boolean>;
    reserveSelection: BooleanConstructor;
    filterMethod: import("vue").PropType<import("element-plus/es/components/table/src/table-column/defaults.mjs").FilterMethods<any>>;
    filteredValue: import("vue").PropType<string[]>;
    filters: import("vue").PropType<import("element-plus/es/components/table/src/table-column/defaults.mjs").Filters>;
    filterPlacement: StringConstructor;
    filterMultiple: {
        type: BooleanConstructor;
        default: boolean;
    };
    index: import("vue").PropType<number | ((index: number) => number)>;
    sortOrders: {
        type: import("vue").PropType<("ascending" | "descending" | null)[]>;
        default: () => (string | null)[];
        validator: (val: ("ascending" | "descending" | null)[]) => boolean;
    };
}>>, void, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, {
    type: string;
    width: string | number;
    minWidth: string | number;
    showOverflowTooltip: boolean | Partial<Pick<import("element-plus").ElTooltipProps, "offset" | "effect" | "placement" | "popperClass" | "showAfter" | "hideAfter" | "popperOptions" | "enterable" | "showArrow">> | undefined;
    sortOrders: ("ascending" | "descending" | null)[];
    sortable: string | boolean;
    resizable: boolean;
    reserveSelection: boolean;
    filterMultiple: boolean;
}, true, {}, {}, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, {}, any, import("vue").ComponentProvideOptions, {
    P: {};
    B: {};
    D: {};
    C: {};
    M: {};
    Defaults: {};
}, Readonly<import("vue").ExtractPropTypes<{
    type: {
        type: StringConstructor;
        default: string;
    };
    label: StringConstructor;
    className: StringConstructor;
    labelClassName: StringConstructor;
    property: StringConstructor;
    prop: StringConstructor;
    width: {
        type: (NumberConstructor | StringConstructor)[];
        default: string;
    };
    minWidth: {
        type: (NumberConstructor | StringConstructor)[];
        default: string;
    };
    renderHeader: import("vue").PropType<(data: {
        column: import("element-plus").TableColumnCtx<any>;
        $index: number;
    }) => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
        [key: string]: any;
    }>>;
    sortable: {
        type: (BooleanConstructor | StringConstructor)[];
        default: boolean;
    };
    sortMethod: import("vue").PropType<(a: any, b: any) => number>;
    sortBy: import("vue").PropType<string | string[] | ((row: any, index: number) => string)>;
    resizable: {
        type: BooleanConstructor;
        default: boolean;
    };
    columnKey: StringConstructor;
    align: StringConstructor;
    headerAlign: StringConstructor;
    showOverflowTooltip: {
        type: import("vue").PropType<boolean | Partial<Pick<import("element-plus").ElTooltipProps, "offset" | "effect" | "placement" | "popperClass" | "showAfter" | "hideAfter" | "popperOptions" | "enterable" | "showArrow">> | undefined>;
        default: undefined;
    };
    fixed: (BooleanConstructor | StringConstructor)[];
    formatter: import("vue").PropType<(row: any, column: import("element-plus").TableColumnCtx<any>, cellValue: any, index: number) => string | import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
        [key: string]: any;
    }>>;
    selectable: import("vue").PropType<(row: any, index: number) => boolean>;
    reserveSelection: BooleanConstructor;
    filterMethod: import("vue").PropType<import("element-plus/es/components/table/src/table-column/defaults.mjs").FilterMethods<any>>;
    filteredValue: import("vue").PropType<string[]>;
    filters: import("vue").PropType<import("element-plus/es/components/table/src/table-column/defaults.mjs").Filters>;
    filterPlacement: StringConstructor;
    filterMultiple: {
        type: BooleanConstructor;
        default: boolean;
    };
    index: import("vue").PropType<number | ((index: number) => number)>;
    sortOrders: {
        type: import("vue").PropType<("ascending" | "descending" | null)[]>;
        default: () => (string | null)[];
        validator: (val: ("ascending" | "descending" | null)[]) => boolean;
    };
}>>, {}, {}, {}, {}, {
    type: string;
    width: string | number;
    minWidth: string | number;
    showOverflowTooltip: boolean | Partial<Pick<import("element-plus").ElTooltipProps, "offset" | "effect" | "placement" | "popperClass" | "showAfter" | "hideAfter" | "popperOptions" | "enterable" | "showArrow">> | undefined;
    sortOrders: ("ascending" | "descending" | null)[];
    sortable: string | boolean;
    resizable: boolean;
    reserveSelection: boolean;
    filterMultiple: boolean;
}> | null, import("vue").CreateComponentPublicInstanceWithMixins<Readonly<import("vue").ExtractPropTypes<{
    type: {
        type: StringConstructor;
        default: string;
    };
    label: StringConstructor;
    className: StringConstructor;
    labelClassName: StringConstructor;
    property: StringConstructor;
    prop: StringConstructor;
    width: {
        type: (NumberConstructor | StringConstructor)[];
        default: string;
    };
    minWidth: {
        type: (NumberConstructor | StringConstructor)[];
        default: string;
    };
    renderHeader: import("vue").PropType<(data: {
        column: import("element-plus").TableColumnCtx<any>;
        $index: number;
    }) => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
        [key: string]: any;
    }>>;
    sortable: {
        type: (BooleanConstructor | StringConstructor)[];
        default: boolean;
    };
    sortMethod: import("vue").PropType<(a: any, b: any) => number>;
    sortBy: import("vue").PropType<string | string[] | ((row: any, index: number) => string)>;
    resizable: {
        type: BooleanConstructor;
        default: boolean;
    };
    columnKey: StringConstructor;
    align: StringConstructor;
    headerAlign: StringConstructor;
    showOverflowTooltip: {
        type: import("vue").PropType<boolean | Partial<Pick<import("element-plus").ElTooltipProps, "offset" | "effect" | "placement" | "popperClass" | "showAfter" | "hideAfter" | "popperOptions" | "enterable" | "showArrow">> | undefined>;
        default: undefined;
    };
    fixed: (BooleanConstructor | StringConstructor)[];
    formatter: import("vue").PropType<(row: any, column: import("element-plus").TableColumnCtx<any>, cellValue: any, index: number) => string | import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
        [key: string]: any;
    }>>;
    selectable: import("vue").PropType<(row: any, index: number) => boolean>;
    reserveSelection: BooleanConstructor;
    filterMethod: import("vue").PropType<import("element-plus/es/components/table/src/table-column/defaults.mjs").FilterMethods<any>>;
    filteredValue: import("vue").PropType<string[]>;
    filters: import("vue").PropType<import("element-plus/es/components/table/src/table-column/defaults.mjs").Filters>;
    filterPlacement: StringConstructor;
    filterMultiple: {
        type: BooleanConstructor;
        default: boolean;
    };
    index: import("vue").PropType<number | ((index: number) => number)>;
    sortOrders: {
        type: import("vue").PropType<("ascending" | "descending" | null)[]>;
        default: () => (string | null)[];
        validator: (val: ("ascending" | "descending" | null)[]) => boolean;
    };
}>>, void, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, {
    type: string;
    width: string | number;
    minWidth: string | number;
    showOverflowTooltip: boolean | Partial<Pick<import("element-plus").ElTooltipProps, "offset" | "effect" | "placement" | "popperClass" | "showAfter" | "hideAfter" | "popperOptions" | "enterable" | "showArrow">> | undefined;
    sortOrders: ("ascending" | "descending" | null)[];
    sortable: string | boolean;
    resizable: boolean;
    reserveSelection: boolean;
    filterMultiple: boolean;
}, true, {}, {}, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, {}, any, import("vue").ComponentProvideOptions, {
    P: {};
    B: {};
    D: {};
    C: {};
    M: {};
    Defaults: {};
}, Readonly<import("vue").ExtractPropTypes<{
    type: {
        type: StringConstructor;
        default: string;
    };
    label: StringConstructor;
    className: StringConstructor;
    labelClassName: StringConstructor;
    property: StringConstructor;
    prop: StringConstructor;
    width: {
        type: (NumberConstructor | StringConstructor)[];
        default: string;
    };
    minWidth: {
        type: (NumberConstructor | StringConstructor)[];
        default: string;
    };
    renderHeader: import("vue").PropType<(data: {
        column: import("element-plus").TableColumnCtx<any>;
        $index: number;
    }) => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
        [key: string]: any;
    }>>;
    sortable: {
        type: (BooleanConstructor | StringConstructor)[];
        default: boolean;
    };
    sortMethod: import("vue").PropType<(a: any, b: any) => number>;
    sortBy: import("vue").PropType<string | string[] | ((row: any, index: number) => string)>;
    resizable: {
        type: BooleanConstructor;
        default: boolean;
    };
    columnKey: StringConstructor;
    align: StringConstructor;
    headerAlign: StringConstructor;
    showOverflowTooltip: {
        type: import("vue").PropType<boolean | Partial<Pick<import("element-plus").ElTooltipProps, "offset" | "effect" | "placement" | "popperClass" | "showAfter" | "hideAfter" | "popperOptions" | "enterable" | "showArrow">> | undefined>;
        default: undefined;
    };
    fixed: (BooleanConstructor | StringConstructor)[];
    formatter: import("vue").PropType<(row: any, column: import("element-plus").TableColumnCtx<any>, cellValue: any, index: number) => string | import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
        [key: string]: any;
    }>>;
    selectable: import("vue").PropType<(row: any, index: number) => boolean>;
    reserveSelection: BooleanConstructor;
    filterMethod: import("vue").PropType<import("element-plus/es/components/table/src/table-column/defaults.mjs").FilterMethods<any>>;
    filteredValue: import("vue").PropType<string[]>;
    filters: import("vue").PropType<import("element-plus/es/components/table/src/table-column/defaults.mjs").Filters>;
    filterPlacement: StringConstructor;
    filterMultiple: {
        type: BooleanConstructor;
        default: boolean;
    };
    index: import("vue").PropType<number | ((index: number) => number)>;
    sortOrders: {
        type: import("vue").PropType<("ascending" | "descending" | null)[]>;
        default: () => (string | null)[];
        validator: (val: ("ascending" | "descending" | null)[]) => boolean;
    };
}>>, {}, {}, {}, {}, {
    type: string;
    width: string | number;
    minWidth: string | number;
    showOverflowTooltip: boolean | Partial<Pick<import("element-plus").ElTooltipProps, "offset" | "effect" | "placement" | "popperClass" | "showAfter" | "hideAfter" | "popperOptions" | "enterable" | "showArrow">> | undefined;
    sortOrders: ("ascending" | "descending" | null)[];
    sortable: string | boolean;
    resizable: boolean;
    reserveSelection: boolean;
    filterMultiple: boolean;
}> | null>;
declare const type: import("vue").ComputedRef<"index" | "selection" | "custom-selection" | "expand" | "table-column" | undefined>;
declare const align: import("vue").ComputedRef<string>;
declare const columnClassName: import("vue").ComputedRef<string>;
declare const columnWidth: import("vue").ComputedRef<string | number | undefined>;
declare const columnIndex: import("vue").ComputedRef<number | ((index: number) => number)>;
declare const slotType: import("vue").ComputedRef<{
    isDefault: boolean;
    isIndex: boolean;
    isSelection: boolean;
    isCustomSelection: boolean;
    isExpand: boolean;
    isTableColumn: boolean;
}>;
declare const fixed: import("vue").ComputedRef<boolean | "left" | "right">;
declare const calcDisabled: (row: any, column: any, index: number) => boolean;
declare const showOverflowTooltip: import("vue").ComputedRef<boolean>;
declare const innerFilterVal: import("vue").WritableComputedRef<any[], any[]>;
declare const innerFilterKeywords: import("vue").WritableComputedRef<string, string>;
declare const isPlaceholder: (row: any, column: any) => boolean;
declare const filterVisibleChange: (val: boolean) => void;
declare const filterConfirm: (val: any[] | Record<"value" | "custom", any>, btnType?: "confirm" | "reset") => void;
declare const clickLink: (row: any, column: any, $index: number) => void;
declare const __VLS_ctx: InstanceType<__VLS_PickNotAny<typeof __VLS_self, new () => {}>>;
declare var __VLS_7: {
    column: any;
    $index: any;
}, __VLS_9: {
    column: any;
    $index: any;
}, __VLS_15: {}, __VLS_29: {
    column: any;
    $index: any;
}, __VLS_31: {
    row: any;
    column: any;
    $index: any;
}, __VLS_33: {
    row: any;
    column: any;
    $index: any;
}, __VLS_35: {
    row: any;
    column: any;
    $index: any;
}, __VLS_37: {
    row: any;
    column: any;
    $index: any;
}, __VLS_39: {
    row: any;
    column: any;
    $index: any;
};
type __VLS_Slots = __VLS_PrettifyGlobal<__VLS_OmitStringIndex<typeof __VLS_ctx.$slots> & {
    header?: (props: typeof __VLS_7) => any;
} & {
    'header-prefix'?: (props: typeof __VLS_9) => any;
} & {
    'header-tips'?: (props: typeof __VLS_15) => any;
} & {
    'header-suffix'?: (props: typeof __VLS_29) => any;
} & {
    default?: (props: typeof __VLS_31) => any;
} & {
    default?: (props: typeof __VLS_33) => any;
} & {
    default?: (props: typeof __VLS_35) => any;
} & {
    default?: (props: typeof __VLS_37) => any;
} & {
    default?: (props: typeof __VLS_39) => any;
}>;
declare const __VLS_self: import("vue").DefineComponent<Props, {
    t: typeof t;
    ElTableColumn: typeof ElTableColumn;
    vDasTooltip: typeof vDasTooltip;
    DasIcon: typeof DasIcon;
    DasTooltip: typeof DasTooltip;
    filterPane: typeof filterPane;
    tableColumn: typeof tableColumn;
    type: typeof type;
    align: typeof align;
    columnClassName: typeof columnClassName;
    columnWidth: typeof columnWidth;
    columnIndex: typeof columnIndex;
    slotType: typeof slotType;
    fixed: typeof fixed;
    calcDisabled: typeof calcDisabled;
    showOverflowTooltip: typeof showOverflowTooltip;
    innerFilterVal: typeof innerFilterVal;
    innerFilterKeywords: typeof innerFilterKeywords;
    isPlaceholder: typeof isPlaceholder;
    filterVisibleChange: typeof filterVisibleChange;
    filterConfirm: typeof filterConfirm;
    clickLink: typeof clickLink;
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
    "update:filterVal": (val: any[]) => any;
    "update:filterKeywords": (val: string) => any;
    "filter-visible-change": (val: boolean) => any;
    "click-link": (row: any, column: any, $index: number) => any;
    "filter-confirm": (val: any[] | Record<"value" | "custom", any>, btnType: "reset" | "confirm") => any;
}, string, import("vue").PublicProps, Readonly<Props> & Readonly<{
    "onUpdate:filterVal"?: ((val: any[]) => any) | undefined;
    "onUpdate:filterKeywords"?: ((val: string) => any) | undefined;
    "onFilter-visible-change"?: ((val: boolean) => any) | undefined;
    "onClick-link"?: ((row: any, column: any, $index: number) => any) | undefined;
    "onFilter-confirm"?: ((val: any[] | Record<"value" | "custom", any>, btnType: "reset" | "confirm") => any) | undefined;
}>, {
    fixed: "left" | "right" | boolean;
    disabled: string | ((row: any, column: any, index: number) => boolean);
    width: string | number;
    placeholder: string;
    index: ((index: number) => number) | number;
    contentType: "span" | "link" | Record<"statusColor", any>;
    showOverflowTooltip: boolean;
    filterDefaultVal: any[];
    filterVal: any[];
    filterKeywords: string;
    columnFilterAutoClearSearch: boolean;
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
declare const __VLS_component: import("vue").DefineComponent<Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
    "update:filterVal": (val: any[]) => any;
    "update:filterKeywords": (val: string) => any;
    "filter-visible-change": (val: boolean) => any;
    "click-link": (row: any, column: any, $index: number) => any;
    "filter-confirm": (val: any[] | Record<"value" | "custom", any>, btnType: "reset" | "confirm") => any;
}, string, import("vue").PublicProps, Readonly<Props> & Readonly<{
    "onUpdate:filterVal"?: ((val: any[]) => any) | undefined;
    "onUpdate:filterKeywords"?: ((val: string) => any) | undefined;
    "onFilter-visible-change"?: ((val: boolean) => any) | undefined;
    "onClick-link"?: ((row: any, column: any, $index: number) => any) | undefined;
    "onFilter-confirm"?: ((val: any[] | Record<"value" | "custom", any>, btnType: "reset" | "confirm") => any) | undefined;
}>, {
    fixed: "left" | "right" | boolean;
    disabled: string | ((row: any, column: any, index: number) => boolean);
    width: string | number;
    placeholder: string;
    index: ((index: number) => number) | number;
    contentType: "span" | "link" | Record<"statusColor", any>;
    showOverflowTooltip: boolean;
    filterDefaultVal: any[];
    filterVal: any[];
    filterKeywords: string;
    columnFilterAutoClearSearch: boolean;
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
declare const _default: __VLS_WithSlots<typeof __VLS_component, __VLS_Slots>;
export default _default;
type __VLS_WithSlots<T, S> = T & {
    new (): {
        $slots: S;
    };
};
