import { compare, record } from '@synnaxlabs/x';
import { FrameProps } from './Frame';
import { state } from '../state';
export interface UseStaticDataReturn<K extends record.Key = record.Key, E extends record.Keyed<K> | undefined = record.Keyed<K> | undefined> extends Required<Pick<FrameProps<K, E>, "getItem">> {
    data: K[];
    retrieve: state.Setter<RetrieveParams, Partial<RetrieveParams>>;
}
export interface RetrieveParams {
    searchTerm?: string;
    offset?: number;
    limit?: number;
}
export interface UseStaticDataArgs<K extends record.Key = record.Key, E extends record.Keyed<K> = record.Keyed<K>> {
    data: E[];
    filter?: (item: E, params: RetrieveParams) => boolean;
    sort?: compare.Comparator<E>;
}
export declare const useStaticData: <K extends record.Key = record.Key, E extends record.Keyed<K> = record.Keyed<K>>({ data, filter, sort, }: UseStaticDataArgs<K, E>) => UseStaticDataReturn<K, E>;
//# sourceMappingURL=useStaticData.d.ts.map