import type { NodeKeyPair } from '@forgezero/runtime/identity'; import type { AttestationSource } from './socket'; import { type SignedNodeHttpOptions } from './signed-node-http'; import type { AgentOperationTelemetry } from './telemetry-runtime'; export interface NodeAttestationOptions extends SignedNodeHttpOptions { keys: NodeKeyPair; source: AttestationSource; intervalMs?: number; /** Upper bound for dependency backoff. Defaults to fifteen minutes. */ maxIntervalMs?: number; /** Defaults to true. Set false after an explicitly awaited first attestation. */ immediate?: boolean; setTimer?: (callback: () => void, ms: number) => unknown; clearTimer?: (handle: unknown) => void; random?: () => number; onEvent?: (event: string, detail?: unknown) => void; telemetry?: AgentOperationTelemetry; } /** One challenge, one PSP report, one signed presentation. */ export declare function attestNodeOnce(options: NodeAttestationOptions): Promise<{ measurement: string; ageMs: number; leaseExpiresAtTs: number; }>; /** Local fail-closed half of the server's confidential-compute lease gate. */ export declare const attestationLeaseAllowsClaims: (sourcePresent: boolean, leaseExpiresAtTs: number, now?: number) => boolean; /** Re-attest without overlap; shutdown waits for the in-flight PSP/KDS round trip. */ export declare function startNodeAttestation(options: NodeAttestationOptions): { stop(): Promise; };