import type { Database, DataKey } from "../util/data.js"; import type { Identifier, Item, Items, OptionalItem } from "../util/item.js"; import type { ItemQuery } from "../util/query.js"; import type { Sourceable } from "../util/source.js"; import type { Updates } from "../util/update.js"; import type { AsyncProvider, Provider } from "./Provider.js"; /** A provider that passes through to a synchronous source. */ export declare class ThroughProvider implements Provider, Sourceable> { readonly source: Provider; constructor(source: Provider); getItem>(collection: K, id: I): OptionalItem; requireItem>(collection: K, id: I): Item; getItemSequence>(collection: K, id: I): AsyncIterable>; addItem>(collection: K, data: T[K]): I; setItem>(collection: K, id: I, data: T[K]): void; updateItem>(collection: K, id: I, update: Updates): void; deleteItem>(collection: K, id: I): void; countQuery>(collection: K, query?: ItemQuery): number; getQuery>(collection: K, query?: ItemQuery): Items; getQuerySequence>(collection: K, query?: ItemQuery): AsyncIterable>; setQuery>(collection: K, query: ItemQuery, data: T[K]): void; updateQuery>(collection: K, query: ItemQuery, update: Updates): void; deleteQuery>(collection: K, query: ItemQuery): void; getFirst>(collection: K, query: ItemQuery): OptionalItem; requireFirst>(collection: K, query: ItemQuery): Item; } /** A provider that passes through to an asynchronous source. */ export declare class AsyncThroughProvider implements AsyncProvider, Sourceable> { readonly source: AsyncProvider; constructor(source: AsyncProvider); getItem>(collection: K, id: I): Promise>; requireItem>(collection: K, id: I): Promise>; getItemSequence>(collection: K, id: I): AsyncIterable>; addItem>(collection: K, data: T[K]): Promise; setItem>(collection: K, id: I, data: T[K]): Promise; updateItem>(collection: K, id: I, updates: Updates): Promise; deleteItem>(collection: K, id: I): Promise; countQuery>(collection: K, query?: ItemQuery): Promise; getQuery>(collection: K, query?: ItemQuery): Promise>; getQuerySequence>(collection: K, query?: ItemQuery): AsyncIterable>; setQuery>(collection: K, query: ItemQuery, data: T[K]): Promise; updateQuery>(collection: K, query: ItemQuery, updates: Updates): Promise; deleteQuery>(collection: K, query: ItemQuery): Promise; getFirst>(collection: K, query: ItemQuery): Promise>; requireFirst>(collection: K, query: ItemQuery): Promise>; }