import { type ReceizPersistedPlannedTransactionV122 } from "@receiz/sdk";
export type ReceizV122PlanCustodyStorage = Readonly<{
    write(key: string, value: ReceizPersistedPlannedTransactionV122): Promise<void>;
    read(key: string): Promise<ReceizPersistedPlannedTransactionV122 | null>;
}>;
export declare function createReceizV122PlanCustody(storage: ReceizV122PlanCustodyStorage): Readonly<{
    persist(key: string, transaction: unknown): Promise<Readonly<{
        schema: "receiz.persisted-planned-transaction.v122";
        canonicalBytesB64u: string;
        transactionDigest: string;
    }>>;
    restore<T>(key: string): Promise<T | null>;
    recover<T>(input: Readonly<{
        key: string;
        lookup: () => Promise<{
            status: "committed" | "zero-write" | "unknown";
        }>;
        executeExact: (transaction: T) => Promise<unknown>;
    }>): Promise<unknown>;
}>;
//# sourceMappingURL=v122PlanCustody.d.ts.map