export type OutcomeState = "pending" | "complete" | "expired"; import { loadLocalPublicKey, loadOrCreateLocalKey, type LocalIssuer, type LocalSignature } from "./local-signing.js"; export interface ReceiptOutcome { readonly code?: string; readonly summary?: string; readonly observed_at?: string; readonly data?: Readonly>; } export interface OutcomeResolutionVerification { readonly status: "verified" | "unverified" | "invalid"; readonly reason?: string; } export interface ReceiptOutcomeResolution { readonly schema_version: "runx.receipt.outcome-resolution.v1"; readonly id: string; readonly receipt_id: string; readonly outcome_state: OutcomeState; readonly outcome?: ReceiptOutcome; readonly source?: string; readonly created_at: string; readonly issuer: LocalIssuer; readonly signature: LocalSignature; } export interface VerifiedReceiptOutcomeResolution { readonly resolution: ReceiptOutcomeResolution; readonly verification: OutcomeResolutionVerification; } export interface WriteReceiptOutcomeResolutionOptions { readonly receiptDir: string; readonly runxHome?: string; readonly receiptId: string; readonly outcomeState: OutcomeState; readonly outcome?: ReceiptOutcome; readonly source?: string; readonly createdAt?: string; readonly resolutionId?: string; } export declare function writeReceiptOutcomeResolution(options: WriteReceiptOutcomeResolutionOptions): Promise; export declare function readReceiptOutcomeResolution(receiptDir: string, resolutionId: string): Promise; export declare function readVerifiedReceiptOutcomeResolution(receiptDir: string, resolutionId: string, runxHome: string): Promise; export declare function listReceiptOutcomeResolutions(receiptDir: string, receiptId?: string): Promise; export declare function listVerifiedReceiptOutcomeResolutions(receiptDir: string, runxHome: string, receiptId?: string): Promise; export declare function latestReceiptOutcomeResolution(receiptDir: string, receiptId: string): Promise; export declare function latestVerifiedReceiptOutcomeResolution(receiptDir: string, receiptId: string, runxHome: string): Promise; export declare function buildReceiptOutcomeResolution(options: Omit, keyPair: Awaited>): ReceiptOutcomeResolution; export declare function verifyReceiptOutcomeResolution(resolution: ReceiptOutcomeResolution, publicKey: Awaited> extends infer T ? T extends { publicKey: infer P; } ? P : never : never): boolean;