import type { HTMLInputAttributes } from 'svelte/elements';
import type { StringArrayKeys, StringKeys } from '../type';
export interface Filter<T, K extends keyof T = keyof T> {
    key: K;
    value: unknown;
    active?: boolean;
}
export type FilterDefinition<T> = {
    key: keyof T;
    type?: HTMLInputAttributes['type'];
};
export declare function getActiveFilters<T>(filters?: Iterable<Filter<T>>): Map<keyof T, Set<unknown>>;
export declare function filterItems<T>({ items, filters }?: {
    items?: Iterable<T>;
    filters?: Iterable<Filter<T>>;
}): T[];
export declare function getQueriedItems<T>({ items, query, queriedKeys }: {
    items?: Iterable<T>;
    query?: string;
    queriedKeys?: Iterable<StringKeys<T> | StringArrayKeys<T>>;
}): T[];
