import { type Selectable } from 'kysely'; import type * as Db from '../Db.js'; import type * as db_Schema from '../Schema.js'; /** Columns of the `routes_transfer_subsidy_nonces` table. */ export type Table = db_Schema.RoutesTransferSubsidyNonce; /** One persisted destination signer nonce cursor. */ export type Record = Selectable; type Lane = { /** Destination subsidy signer address. */ account: string; /** Destination EVM chain CAIP-2 id. */ chainId: string; }; /** Locks a signer lane and rejects new work when its nonce cannot be recovered. */ export declare function lockAvailableIn(db: Db.Db, options: Lane): Promise; /** Blocks a signer lane after a reserved nonce is permanently rejected. */ export declare function block(db: Db.Db, options: block.Options): Promise; /** Blocks a signer lane inside a caller-owned transaction. */ export declare function blockIn(db: Db.Db, options: block.Options): Promise; export declare namespace block { /** Signer lane and permanent rejection evidence. */ type Options = Lane & { /** Bounded reason for blocking the signer lane. */ reason: 'broadcast_rejected'; /** Transfer holding the rejected nonce. */ transferId: string; }; } /** Reserves one nonce under a transaction-scoped signer and chain lock. */ export declare function reserve(db: Db.Db, options: reserve.Options): Promise; /** The signer lane is blocked by an unrecoverable reserved nonce. */ export declare class BlockedError extends Error { name: string; } /** A rejected subsidy transaction had no persisted nonce cursor. */ export declare class MissingCursorError extends Error { name: string; } export declare namespace reserve { /** Signer and chain cursor used to reserve one nonce. */ type Options = { /** Destination subsidy signer address. */ account: string; /** Destination EVM chain CAIP-2 id. */ chainId: string; /** Next nonce observed from the pending RPC state. */ pendingNonce: number; }; } export {}; //# sourceMappingURL=routesTransferSubsidyNonces.d.ts.map