import { Ref } from 'vue';
import { ChipItem } from '../../components/ChipList/types';
export type FilterItem = {
    name: string;
    value?: unknown;
    formatChip?: (value: unknown) => ChipItem[];
    chipOverflowLimit?: number;
    title?: string;
};
export type FilterProp = FilterItem[];
export default function useFilterable(model: Ref<FilterProp>, emits: any): {
    filters: Ref<{
        name: string;
        value?: unknown;
        formatChip?: ((value: unknown) => ChipItem[]) | undefined;
        chipOverflowLimit?: number | undefined;
        title?: string | undefined;
    }[], FilterProp | {
        name: string;
        value?: unknown;
        formatChip?: ((value: unknown) => ChipItem[]) | undefined;
        chipOverflowLimit?: number | undefined;
        title?: string | undefined;
    }[]>;
    updateValue: () => void;
    removeChip: (filter: FilterItem, chip: ChipItem) => void;
    resetFilter: (filter: FilterItem) => void;
    resetAllFilters: () => void;
    getChips: (filter: FilterItem) => ChipItem[];
    getFilterCount: (filter: FilterItem) => number;
    formatFilterName: (name: string) => string;
};
