import type * as cf from "@cloudflare/workers-types"; import * as Effect from "effect/Effect"; import * as Stream from "effect/Stream"; import type { RuntimeContext } from "../../RuntimeContext.ts"; export type SqlStorageValue = cf.SqlStorageValue; export interface SqlCursor> extends Stream.Stream { next(): Effect.Effect<{ done?: false; value: T; } | { done: true; value?: never; }, never, RuntimeContext>; toArray(): Effect.Effect; one(): Effect.Effect; raw(): Stream.Stream; readonly columnNames: string[]; readonly rowsRead: Effect.Effect; readonly rowsWritten: Effect.Effect; } export interface SqlStorage { /** * The raw underlying Cloudflare SqlStorage binding. * * Use this when you need direct access for libraries that already support * Cloudflare Durable Object SQLite storage. */ readonly raw: cf.SqlStorage; exec>(query: string, ...bindings: any[]): Effect.Effect, never, RuntimeContext>; readonly databaseSize: number; } export interface DurableObjectTransaction { get(key: string, options?: cf.DurableObjectGetOptions): Effect.Effect; get(keys: string[], options?: cf.DurableObjectGetOptions): Effect.Effect, never, RuntimeContext>; list(options?: cf.DurableObjectListOptions): Effect.Effect, never, RuntimeContext>; put(key: string, value: T, options?: cf.DurableObjectPutOptions): Effect.Effect; put(entries: Record, options?: cf.DurableObjectPutOptions): Effect.Effect; delete(key: string, options?: cf.DurableObjectPutOptions): Effect.Effect; delete(keys: string[], options?: cf.DurableObjectPutOptions): Effect.Effect; rollback(): Effect.Effect; getAlarm(options?: cf.DurableObjectGetAlarmOptions): Effect.Effect; setAlarm(scheduledTime: number | Date, options?: cf.DurableObjectSetAlarmOptions): Effect.Effect; deleteAlarm(options?: cf.DurableObjectSetAlarmOptions): Effect.Effect; } export interface DurableObjectStorage { get(key: string, options?: cf.DurableObjectGetOptions): Effect.Effect; get(keys: string[], options?: cf.DurableObjectGetOptions): Effect.Effect, never, RuntimeContext>; list(options?: cf.DurableObjectListOptions): Effect.Effect, never, RuntimeContext>; put(key: string, value: T, options?: cf.DurableObjectPutOptions): Effect.Effect; put(entries: Record, options?: cf.DurableObjectPutOptions): Effect.Effect; delete(key: string, options?: cf.DurableObjectPutOptions): Effect.Effect; delete(keys: string[], options?: cf.DurableObjectPutOptions): Effect.Effect; deleteAll(options?: cf.DurableObjectPutOptions): Effect.Effect; transaction(closure: (txn: DurableObjectTransaction) => Effect.Effect): Effect.Effect; getAlarm(options?: cf.DurableObjectGetAlarmOptions): Effect.Effect; setAlarm(scheduledTime: number | Date, options?: cf.DurableObjectSetAlarmOptions): Effect.Effect; deleteAlarm(options?: cf.DurableObjectSetAlarmOptions): Effect.Effect; sync(): Effect.Effect; sql: SqlStorage; kv: cf.SyncKvStorage; getCurrentBookmark(): Effect.Effect; getBookmarkForTime(timestamp: number | Date): Effect.Effect; onNextSessionRestoreBookmark(bookmark: string): Effect.Effect; } export declare const fromDurableObjectTransaction: (txn: cf.DurableObjectTransaction) => DurableObjectTransaction; export declare const fromDurableObjectStorage: (storage: cf.DurableObjectStorage) => DurableObjectStorage; //# sourceMappingURL=DurableObjectStorage.d.ts.map