@instantdb/core
Version:
Instant's core local abstraction
26 lines • 1.5 kB
TypeScript
import { type InstantCoreDatabase, type ValidQuery } from './index.ts';
import { InstaQLResponse, InstaQLOptions } from './queryTypes.ts';
import { InstantSchemaDef } from './schemaTypes.ts';
export type ChunkStatus = 'pre-bootstrap' | 'bootstrapping' | 'frozen';
export interface InfiniteQuerySubscription {
unsubscribe: () => void;
loadNextPage: () => void;
}
export type InfiniteQueryCallbackResponse<Schema extends InstantSchemaDef<any, any, any>, Query extends Record<string, any>, UseDatesLocal extends boolean> = {
error: {
message: string;
};
data: undefined;
canLoadNextPage: boolean;
} | {
error: undefined;
data: InstaQLResponse<Schema, Query, UseDatesLocal>;
canLoadNextPage: boolean;
};
export declare const subscribeInfiniteQuery: <Schema extends InstantSchemaDef<any, any, any>, Q extends ValidQuery<Q, Schema>, UseDates extends boolean>(db: InstantCoreDatabase<Schema, UseDates>, fullQuery: Q, cb: (resp: InfiniteQueryCallbackResponse<Schema, Q, UseDates>) => void, opts?: InstaQLOptions) => InfiniteQuerySubscription;
export declare const getInfiniteQueryInitialSnapshot: <Schema extends InstantSchemaDef<any, any, any>, Q extends ValidQuery<Q, Schema>, UseDates extends boolean>(db: InstantCoreDatabase<Schema, UseDates>, fullQuery: Q | null, opts?: InstaQLOptions) => InfiniteQueryCallbackResponse<Schema, Q, UseDates> | {
canLoadNextPage: false;
data: undefined;
error: undefined;
};
//# sourceMappingURL=infiniteQuery.d.ts.map