/** * Remote signing service. Private keys stay on the host; * sandboxed agents submit unsigned tx → policy check → sign → return. */ import type { SandboxAuditLog } from "../security/audit-log"; import { type PolicyDecision, type SigningPolicy, type SigningRequest } from "./signing-policy"; export interface SignerBackend { getAddress(): Promise; signMessage(message: string): Promise; signTransaction(tx: UnsignedTransaction): Promise; } export interface UnsignedTransaction { to: string; value: string; data: string; chainId: number; nonce?: number; gasLimit?: string; maxFeePerGas?: string; maxPriorityFeePerGas?: string; } export interface SigningResult { success: boolean; signature?: string; error?: string; policyDecision: PolicyDecision; humanConfirmed: boolean; } export interface PendingApproval { requestId: string; request: SigningRequest; decision: PolicyDecision; createdAt: number; expiresAt: number; } export interface RemoteSigningServiceConfig { signer: SignerBackend; policy?: SigningPolicy; auditLog?: SandboxAuditLog; approvalTimeoutMs?: number; } export declare class RemoteSigningService { private signer; private policyEvaluator; private auditLog?; private pendingApprovals; private approvalTimeoutMs; constructor(config: RemoteSigningServiceConfig); getAddress(): Promise; submitSigningRequest(request: SigningRequest): Promise; approveRequest(requestId: string): Promise; rejectRequest(requestId: string): boolean; getPendingApprovals(): PendingApproval[]; updatePolicy(policy: SigningPolicy): void; getPolicy(): SigningPolicy; private executeSign; } //# sourceMappingURL=remote-signing-service.d.ts.map