import { FilterOption, TableColumnHeader } from './types';
import { filterItems } from './tableFilterUtils';
declare function __VLS_template(): {
    attrs: Partial<{}>;
    slots: {
        'custom-filter'?(_: {
            header: TableColumnHeader;
            value: string | number | Record<string, unknown> | (string | number | Record<string, unknown>)[] | {
                from: string | null;
                to: string | null;
            } | null | undefined;
            updateFilter: (value: any) => void;
        }): any;
    };
    refs: {};
    rootEl: any;
};
type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
declare const __VLS_component: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
    header: {
        type: () => TableColumnHeader;
        required: true;
    };
    filterable: {
        type: BooleanConstructor;
        default: boolean;
    };
    filters: {
        type: () => FilterOption[];
        default: () => never[];
    };
    inputConfig: {
        type: () => {
            disableErrorHandling?: boolean;
            variant?: string;
            hideDetails?: boolean;
            density?: "default" | "comfortable" | "compact";
            clearable?: boolean;
        };
        default: () => {};
    };
    disableErrorHandling: {
        type: BooleanConstructor;
        default: boolean;
    };
    variant: {
        type: StringConstructor;
        default: string;
    };
    hideDetails: {
        type: BooleanConstructor;
        default: boolean;
    };
    density: {
        type: () => "default" | "comfortable" | "compact";
        default: string;
    };
    clearable: {
        type: BooleanConstructor;
        default: boolean;
    };
}>, {
    filterItems: typeof filterItems;
}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
    "update:filters": (...args: any[]) => void;
}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
    header: {
        type: () => TableColumnHeader;
        required: true;
    };
    filterable: {
        type: BooleanConstructor;
        default: boolean;
    };
    filters: {
        type: () => FilterOption[];
        default: () => never[];
    };
    inputConfig: {
        type: () => {
            disableErrorHandling?: boolean;
            variant?: string;
            hideDetails?: boolean;
            density?: "default" | "comfortable" | "compact";
            clearable?: boolean;
        };
        default: () => {};
    };
    disableErrorHandling: {
        type: BooleanConstructor;
        default: boolean;
    };
    variant: {
        type: StringConstructor;
        default: string;
    };
    hideDetails: {
        type: BooleanConstructor;
        default: boolean;
    };
    density: {
        type: () => "default" | "comfortable" | "compact";
        default: string;
    };
    clearable: {
        type: BooleanConstructor;
        default: boolean;
    };
}>> & Readonly<{
    "onUpdate:filters"?: ((...args: any[]) => any) | undefined;
}>, {
    density: "default" | "comfortable" | "compact";
    variant: string;
    filterable: boolean;
    disableErrorHandling: boolean;
    hideDetails: boolean;
    clearable: boolean;
    filters: FilterOption[];
    inputConfig: {
        disableErrorHandling?: boolean;
        variant?: string;
        hideDetails?: boolean;
        density?: "default" | "comfortable" | "compact";
        clearable?: boolean;
    };
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
export default _default;
type __VLS_WithTemplateSlots<T, S> = T & {
    new (): {
        $slots: S;
    };
};
