import { InfiniteData } from '@tanstack/query-core';
type ICacheItemBase = {
    id: string;
};
export interface ICachePage<ICacheItem extends ICacheItemBase> {
    results: ICacheItem[];
    next: string;
}
export type ICache<ICacheItem extends ICacheItemBase> = InfiniteData<ICachePage<ICacheItem>, string>;
interface IAdditionOptions {
    append?: boolean;
    replace?: boolean;
}
export declare function buildEmptyCacheWithItem<ICacheItem>(item: ICacheItem): {
    pages: {
        next: string;
        results: ICacheItem[];
    }[];
    pageParams: string[];
};
export declare function addItem<ICacheItem extends ICacheItemBase>(item: ICacheItem, cache?: ICache<ICacheItem>, opts?: IAdditionOptions): {
    pages: {
        next: string;
        results: ICacheItem[];
    }[];
    pageParams: string[];
};
export declare function findItem<ICacheItem extends ICacheItemBase>(itemId: string, cache?: ICache<ICacheItem>): ICacheItem | undefined;
export declare function removeItem<ICacheItem extends ICacheItemBase>(itemId: string, cache: ICache<ICacheItem>): ICache<ICacheItem>;
export declare function flattenCache<ICacheItem extends ICacheItemBase>(cache?: ICache<ICacheItem>): ICacheItem[];
export {};
