/** Transport-independent query snapshots. Defaults and business permissions belong to consumers. */ export interface ResourceSnapshot { readonly value: T | undefined; readonly updatedAt: number; readonly stale: boolean; readonly refreshing: boolean; readonly mutating: boolean; readonly error: unknown; readonly operationError: unknown; } export interface ResourceAdapter { load(binding: B, signal: AbortSignal): Promise; loadCached?(binding: B, signal: AbortSignal): Promise; accept?(current: T, next: T): boolean; restore?(binding: B): T | undefined; persist?(binding: B, value: T): void; freshForMs?: number; } export interface ResourceMutation { readonly binding: B; readonly signal: AbortSignal; value(): T | undefined; current(): boolean; read(): Promise; commit(value: T): void; invalidate(): void; } export declare function resourceCancelled(): Error; export declare function isResourceCancelled(error: unknown): boolean; export declare class ResourceStore { private readonly adapter; private readonly now; private readonly capacity; readonly empty: ResourceSnapshot; private entries; constructor(adapter: ResourceAdapter, now?: () => number, capacity?: number); get(key: string, binding?: B): ResourceSnapshot; subscribe(key: string, binding: B, listener: () => void): () => void; private entry; private publish; private commit; refresh(key: string, binding: B, force?: boolean, recheck?: boolean): Promise; invalidate(key?: string): void; mutate(key: string, binding: B, operation: (context: ResourceMutation) => Promise): Promise; reset(matches?: (key: string) => boolean): void; private prune; } //# sourceMappingURL=resource-store.d.ts.map