import { ArrayStore } from "../store/ArrayStore.js"; import { BooleanStore } from "../store/BooleanStore.js"; import type { Database, DataKey } from "../util/data.js"; import type { Identifier, Item } from "../util/item.js"; import type { ItemQuery } from "../util/query.js"; import type { StopCallback } from "../util/start.js"; import type { MemoryProvider } from "./MemoryProvider.js"; import type { AbstractProvider } from "./Provider.js"; /** Store a set of multiple items. */ export declare class QueryStore> extends ArrayStore> { readonly provider: AbstractProvider; readonly collection: K; readonly query: ItemQuery; readonly busy: BooleanStore; readonly limit: number; /** Can more items be loaded after the current result. */ get hasMore(): boolean; private _hasMore; /** Get the first item in this store. */ get first(): Item; /** Get the last item in this store. */ get last(): Item; constructor(collection: K, query: ItemQuery, provider: AbstractProvider, memory?: MemoryProvider); /** Refresh this store from the source provider. */ refresh(provider?: AbstractProvider): void; private _refresh; /** Refresh this store if data in the cache is older than `maxAge` (in milliseconds). */ refreshStale(maxAge: number): void; /** Subscribe this store to a provider. */ connect(provider?: AbstractProvider): StopCallback; /** * Load more items after the last once. * - Promise that needs to be handled. */ loadMore(): void; private _loadMore; [Symbol.iterator](): Iterator>; }