import type { GenericDataModel, MutationBuilder, QueryBuilder, RegisteredMutation, RegisteredQuery } from "convex/server"; import type { ComponentApi } from "./component/_generated/component.js"; /** * Replaces the 150-line `src/templates/convex-chatState.ts.template` with a * single helper call. Users drop this into their own `convex/chatState.ts`: * * ```ts * import { mutation, query } from "./_generated/server"; * import { components } from "./_generated/api"; * import { createChatStateWrappers } from "chat-state-convex-adapter/wrappers"; * * export const { * subscribe, unsubscribe, isSubscribed, * acquireLock, releaseLock, forceReleaseLock, extendLock, * kvGet, kvSet, kvSetIfNotExists, kvDelete, * appendToList, getList, * enqueue, dequeue, queueDepth, * } = createChatStateWrappers({ * mutation, * query, * component: components.chatState, * }); * ``` * * Convex's codegen picks up top-level named exports — destructuring the * returned object gives it exactly the shape it expects. Then pass * `api.chatState` as the `api` option to `createConvexState({ client, api })`. */ export declare function createChatStateWrappers(deps: { mutation: MutationBuilder; query: QueryBuilder; component: ComponentApi; }): ChatStateWrappers; export interface ChatStateWrappers { subscribe: RegisteredMutation<"public", { keyPrefix: string; threadId: string; }, Promise>; unsubscribe: RegisteredMutation<"public", { keyPrefix: string; threadId: string; }, Promise>; isSubscribed: RegisteredQuery<"public", { keyPrefix: string; threadId: string; }, Promise>; acquireLock: RegisteredMutation<"public", { keyPrefix: string; threadId: string; ttlMs: number; token: string; }, Promise<{ threadId: string; token: string; expiresAt: number; } | null>>; releaseLock: RegisteredMutation<"public", { keyPrefix: string; threadId: string; token: string; }, Promise>; forceReleaseLock: RegisteredMutation<"public", { keyPrefix: string; threadId: string; }, Promise>; extendLock: RegisteredMutation<"public", { keyPrefix: string; threadId: string; token: string; ttlMs: number; }, Promise>; kvGet: RegisteredQuery<"public", { keyPrefix: string; cacheKey: string; }, Promise>; kvSet: RegisteredMutation<"public", { keyPrefix: string; cacheKey: string; value: string; ttlMs?: number; }, Promise>; kvSetIfNotExists: RegisteredMutation<"public", { keyPrefix: string; cacheKey: string; value: string; ttlMs?: number; }, Promise>; kvDelete: RegisteredMutation<"public", { keyPrefix: string; cacheKey: string; }, Promise>; appendToList: RegisteredMutation<"public", { keyPrefix: string; listKey: string; value: string; maxLength?: number; ttlMs?: number; }, Promise>; getList: RegisteredQuery<"public", { keyPrefix: string; listKey: string; }, Promise>; enqueue: RegisteredMutation<"public", { keyPrefix: string; threadId: string; value: string; expiresAt: number; maxSize: number; }, Promise>; dequeue: RegisteredMutation<"public", { keyPrefix: string; threadId: string; }, Promise<{ value: string; expiresAt: number; } | null>>; queueDepth: RegisteredQuery<"public", { keyPrefix: string; threadId: string; }, Promise>; } //# sourceMappingURL=wrappers.d.ts.map