import { Collection, CollectionImpl } from './collection/index.js';
import { DbClient } from './client.js';
import { LiveQueryCollectionConfig } from './query/index.js';
export type LiveQueryKey = ReadonlyArray<unknown>;
export type LiveQueryOptions = LiveQueryCollectionConfig<any> & {
    queryKey?: LiveQueryKey;
};
export type DeferredLiveQueryCollections = Set<CollectionImpl<any, string | number, any, any, any>>;
/** Release every deferred source, then report the first startup failure. */
export declare function resumeDeferredLiveQueryCollections(collections: DeferredLiveQueryCollections): void;
export declare function prepareLiveQueryValue(value: unknown, dbClient: DbClient | undefined, deferredCollections?: DeferredLiveQueryCollections): unknown;
/** Concrete source objects in query-position order for a prepared value. */
export declare function getPreparedLiveQuerySources(value: unknown, onUnboundDescriptor?: (alias: string) => never): Array<Collection>;
export declare function getPreparedLiveQueryIdentity(value: unknown): unknown;
export declare function getLiveQueryHash(preparedValue: unknown, queryKey?: LiveQueryKey): string;
export declare function resolveLiveQueryValue(value: unknown, { gcTime, pool, startSync, }?: {
    gcTime?: number;
    pool?: boolean;
    startSync?: boolean;
}): Collection<any, any, any> | null;
