import { Collection, CollectionStatus, Context, GetResult, InferResultType, InitialQueryBuilder, LiveQueryCollectionConfig, LiveQueryPersistedStatus, NonSingleResult, QueryBuilder, SingleResult } from '@tanstack/db'; import { Signal } from '@angular/core'; export * from '@tanstack/db'; /** * The result of calling `injectLiveQuery`. * Contains reactive signals for the query state and data. */ export interface InjectLiveQueryResult { /** A signal containing the complete state map of results keyed by their ID */ state: Signal>>; /** A signal containing the results as an array, or single result for findOne queries */ data: Signal>; /** A signal containing the underlying collection instance (null for disabled queries) */ collection: Signal, string | number, {}> | null>; /** A signal containing the current status of the collection */ status: Signal; /** A signal indicating whether the collection is currently loading */ isLoading: Signal; /** A signal indicating whether the collection is ready */ isReady: Signal; persistedStatus: Signal; isPersistedReady: Signal; persistedError: Signal; /** A signal indicating whether the collection is idle */ isIdle: Signal; /** A signal indicating whether the collection has an error */ isError: Signal; /** A signal indicating whether the collection has been cleaned up */ isCleanedUp: Signal; } type InferConditionalResultType = TContext extends SingleResult ? InferResultType | [] : InferResultType; export type InjectConditionalLiveQueryResult = Omit, `data`> & { data: Signal>; }; export interface InjectLiveQueryResultWithCollection = {}> { state: Signal>; data: Signal>; collection: Signal | null>; status: Signal; isLoading: Signal; isReady: Signal; persistedStatus: Signal; isPersistedReady: Signal; persistedError: Signal; isIdle: Signal; isError: Signal; isCleanedUp: Signal; } export interface InjectLiveQueryResultWithSingleResultCollection = {}> { state: Signal>; data: Signal; collection: Signal<(Collection & SingleResult) | null>; status: Signal; isLoading: Signal; isReady: Signal; persistedStatus: Signal; isPersistedReady: Signal; persistedError: Signal; isIdle: Signal; isError: Signal; isCleanedUp: Signal; } export declare function injectLiveQuery(options: { params: () => TParams; query: (args: { params: TParams; q: InitialQueryBuilder; }) => QueryBuilder; }): InjectLiveQueryResult; export declare function injectLiveQuery(options: { params: () => TParams; query: (args: { params: TParams; q: InitialQueryBuilder; }) => QueryBuilder | undefined | null; }): InjectConditionalLiveQueryResult; export declare function injectLiveQuery(queryFn: (q: InitialQueryBuilder) => QueryBuilder): InjectLiveQueryResult; export declare function injectLiveQuery(queryFn: (q: InitialQueryBuilder) => QueryBuilder | undefined | null): InjectConditionalLiveQueryResult; export declare function injectLiveQuery(config: LiveQueryCollectionConfig): InjectLiveQueryResult; export declare function injectLiveQuery>(liveQueryCollection: Collection & NonSingleResult): InjectLiveQueryResultWithCollection; export declare function injectLiveQuery>(liveQueryCollection: Collection & SingleResult): InjectLiveQueryResultWithSingleResultCollection;