import type { Client, InArgs, InStatement, ResultSet } from "@libsql/client"; import { type ReceiptV1Consumption } from "./receipt-v1.js"; export type StoredReceiptV1 = Extract["receipt"]; export declare const RECEIPT_V1_STORED_JSON_MAX_BYTES: number; export interface ReceiptQueryClient { execute(statement: InStatement | string, args?: InArgs): Promise; } export type BeginReceiptAttemptResult = { operationId: string; attemptId: string; operationCreated: boolean; priorTerminalStatus: StoredReceiptV1["status"] | null; }; export type SupersedePendingReceiptAttemptResult = { operationId: string; attemptId: string; startedAt: string; supersededAttemptId: string; }; export type RecoverableTerminalReceiptAttempt = Readonly<{ operationId: string; attemptId: string; startedAt: string; status: "partial" | "failed" | "refused"; replayKeyDigest: string; }>; export declare function findRecoverablePodRepairReceiptAttempts(db: ReceiptQueryClient): Promise; export interface SupersedePendingReceiptAttemptDependencies { readonly beforeCommit?: () => void; } export declare class ReceiptRepositoryError extends Error { readonly code: string; constructor(code: string, message: string); } export declare function beginReceiptAttempt(db: Client, value: unknown): Promise; export declare function beginReceiptAttemptForReplayPlan(db: Client, value: unknown): Promise; export type ReceiptAttemptState = Readonly<{ kind: "absent"; }> | Readonly<{ kind: "pending"; startedAt: string; }> | Readonly<{ kind: "terminal"; receipt: StoredReceiptV1; }>; export declare function readReceiptAttemptState(db: Client, attemptId: string): Promise; export declare function findPendingReceiptAttemptForOperation(db: ReceiptQueryClient, operationId: string): Promise | null>; export declare function resumePendingReceiptAttempt(db: Client, value: unknown): Promise>; export declare function supersedePendingReceiptAttempt(db: Client, interruptedValue: unknown, freshValue: unknown, dependencies?: SupersedePendingReceiptAttemptDependencies): Promise; export declare function finalizeReceiptAttempt(db: Client, value: unknown): Promise; export declare function readReceiptAttempt(db: Client, attemptId: string): Promise; export type ReceiptAttemptSummary = { attemptId: string; operationId: string; operation: string; status: StoredReceiptV1["status"] | "pending"; startedAt: string; finishedAt: string | null; }; export type ReceiptAttemptQuery = { operationId: string; attemptId?: string; operation?: string; status?: StoredReceiptV1["status"]; limit?: number; }; export declare function queryReceiptAttempts(db: ReceiptQueryClient, query: ReceiptAttemptQuery): Promise<{ operationKnown: boolean; attempts: StoredReceiptV1[]; }>; export declare function listReceiptAttemptSummaries(db: ReceiptQueryClient, query?: Omit): Promise; export declare function countReceiptOperations(db: Client): Promise; export declare function countReceiptAttempts(db: Client): Promise; //# sourceMappingURL=receipt-repository.d.ts.map