import { Accessor } from 'solid-js';
import { filter } from '../../core/filter/filter';
import type { Expression, FilterOptions } from '../../types';
export declare function useFilter<T>(data: Accessor<T[]>, expression: Accessor<Expression<T> | null>, options?: Accessor<FilterOptions>): {
    filtered: Accessor<T[]>;
    isFiltering: Accessor<boolean>;
};
export declare function useDebouncedFilter<T>(data: Accessor<T[]>, expression: Accessor<Expression<T>>, options?: {
    delay?: number;
    filterOptions?: FilterOptions;
}): {
    filtered: Accessor<T[]>;
    isPending: Accessor<boolean>;
};
export declare function usePaginatedFilter<T>(data: Accessor<T[]>, expression: Accessor<Expression<T> | null>, options?: {
    pageSize?: number;
    initialPage?: number;
    filterOptions?: FilterOptions;
}): {
    paginatedResults: Accessor<T[]>;
    currentPage: Accessor<number>;
    totalPages: Accessor<number>;
    pageSize: Accessor<number>;
    setPage: (page: number) => void;
    setPageSize: (size: number) => void;
    nextPage: () => void;
    prevPage: () => void;
};
export { filter };
