import type { PersistedClient } from "@tanstack/query-persist-client-core"; import { QueryClient } from "@tanstack/react-query"; import { type ComponentType, type ReactNode } from "react"; import type { AuthSessionResponse } from "../server/auth.js"; import type { ActionQueryCacheStorage } from "./action-query-cache.js"; export type Gate = ComponentType<{ children: ReactNode; }>; export type SessionUser = AuthSessionResponse; export type ProbeRender = { title: string | undefined; status: string; userId: string | undefined; firstRead: boolean; }; export declare const ALICE: SessionUser; export declare const BOB: SessionUser; export declare function sessionResponse(user: SessionUser): Response; export declare function transientSessionFailure(): Response; export declare function designsResponse(title: string): Response; export declare function memoryStorage(): { records: Map; storage: ActionQueryCacheStorage; }; export declare function stubFetch(options: { onSession: (request: number) => Promise | Response; onAction: (request: number) => Promise | Response; }): { calls: { kind: "session" | "action"; path: string; }[]; sessionCount: () => number; actionCount: () => number; }; export declare function StatusProbe({ onStatus, }: { onStatus: (value: { status: string; userId: string | undefined; }) => void; }): null; export declare function mountProbe(GateComponent: Gate, queryClient: QueryClient, onRender: (value: ProbeRender) => void, onStatus?: (value: { status: string; userId: string | undefined; }) => void): Promise; export declare function settle(ms?: number): Promise; export declare function waitUntil(predicate: () => boolean, timeoutMs?: number): Promise; export declare function unmountAll(): Promise; export { QueryClient };