type BaseQuery = { revalidate: () => Promise; fetch: () => Promise; subscribe: () => () => void; }; export type QueryState = { promise: SuspensePromise; error: null; value: null; isRevalidating: false; isFetching: true; } | { promise: SuspensePromise; error: Error; value: null; isRevalidating: false; isFetching: false; } | { promise: SuspensePromise; error: null; value: T; isRevalidating: false; isFetching: false; } | { promise: SuspensePromise; error: null; value: T; isRevalidating: true; isFetching: false; }; export type Query = BaseQuery & QueryState; export declare function query(fetcher: () => Promise): Query; type PendingPromise = Promise & { status: "pending"; }; type FulfilledPromise = Promise & { status: "fulfilled"; value: T; }; type RejectedPromise = Promise & { status: "rejected"; reason: Error; }; export type SuspensePromise = PendingPromise | FulfilledPromise | RejectedPromise; export declare function createPendingPromise(promise: Promise): PendingPromise; export declare function createFulfilledPromise(promise: Promise, value: T): FulfilledPromise; export declare function createRejectedPromise(promise: Promise, reason: Error): RejectedPromise; export declare function createObservablePromise(promise: Promise, abortController: AbortController, onSettled: (promise: FulfilledPromise | RejectedPromise) => void): SuspensePromise; export {};