/** Minimum shape a signing field must satisfy. */ export interface SigningFieldBase { /** Stable, unique id for the field within the session. */ id: string; /** Initial signed state (default `false`). */ signed?: boolean; } /** A consumer field enriched with the session's live signed state + payload. */ export type SigningField = TField & { signed: boolean; payload?: TPayload; }; export interface UseSigningSessionReturn { /** The input fields, each enriched with live `signed` + `payload`. */ fields: SigningField[]; /** How many fields are currently signed. */ signedCount: number; /** Total number of fields. */ total: number; /** True when every field is signed (and there is at least one). */ isComplete: boolean; /** The field whose capture UI is currently open, or `null`. */ activeFieldId: string | null; /** Open a field's capture UI (sets `activeFieldId`). */ openField: (id: string) => void; /** Close any open capture UI (clears `activeFieldId`). */ closeField: () => void; /** Flip a field to signed, storing its payload, and close it if active. */ markSigned: (id: string, payload?: TPayload) => void; /** Read a single field's signed state. */ isFieldSigned: (id: string) => boolean; /** Clear all signatures and close any open field. */ reset: () => void; /** The field currently targeted by next/previous navigation, or `null`. */ cursorFieldId: string | null; /** Move the navigation cursor to the next field (input order, cycling). */ goToNextField: () => void; /** Move the navigation cursor to the previous field (cycling). */ goToPreviousField: () => void; /** Move the cursor to the next still-unsigned field (cycling); no-op if all signed. */ goToNextUnsigned: () => void; } export declare function useSigningSession(fields: TField[]): UseSigningSessionReturn; //# sourceMappingURL=use-signing-session.d.ts.map