import type { CAELTrace } from './CAELTrace'; import type { InteractionEvent, ScaleEnvelope, SimulationProvenance, SimulationScale, SubgridAttestation } from './SimulationContract'; import { type HashMode } from './sha256'; export declare const SIMULATION_EVIDENCE_PACK_SCHEMA_VERSION: "0.1.0"; export type EvidenceJsonValue = string | number | boolean | null | EvidenceJsonValue[] | { [key: string]: EvidenceJsonValue; }; export interface SimulationEvidenceRequirements { requirementId: string; requirementText: string; requirementSource: string; verificationMethod: 'simulation' | 'hil-replay' | 'mbse-trace' | string; acceptanceCriteria: Record; } export interface SimulationEvidenceReplayRecord { config: Record; solverType: string; geometryHash: string; contractId: string; subgridAttestation?: SubgridAttestation; scale: SimulationScale; scaleEnvelope: ScaleEnvelope; interactions: InteractionEvent[]; fixedDt: number; totalSteps: number; useCryptographicHash: boolean; continuesFrom?: unknown; } export interface SimulationEvidenceSolverConfig { solverType: string; scale: SimulationScale; fixedDt: number; useCryptographicHash: boolean; hashMode: HashMode; geometryHash: string; contractId: string; config: EvidenceJsonValue; contractConfig?: EvidenceJsonValue; } export interface SimulationEvidenceFieldTolerance { quantum: number; unit: string; relativeTolerance: number; acceptanceBound: number; } export interface SimulationEvidenceToleranceTable { scale: SimulationScale; scaleTolerance: number; replayAllowed: boolean; fieldTolerances: Record; vvCriteria: Record; projectionsTo: Partial>; } export interface SimulationEvidenceGeneratedArtifact { artifactId: string; kind: string; path: string; hash: string; source?: string; } export interface SimulationEvidenceHardwareValidation { status: 'pass' | 'simulated' | 'not-run' | 'fail'; device: string; runtime: string; checkedAt: string; adapterFingerprint?: string; benchmark?: { name: string; value: number; unit: string; }; notes?: string; } export interface SimulationEvidenceVerificationResult { status: 'pass' | 'fail'; verifier: string; checkedAt: string; checks: Record; reasons: string[]; traceHashChainValid?: boolean; followUpAffordances: { studioMbseRequirementsLinkUi: string; hilReplayHarness: string; }; } export interface SimulationEvidencePack { packId: string; schemaVersion: typeof SIMULATION_EVIDENCE_PACK_SCHEMA_VERSION; createdAt: string; simulationRunId: string; contractId: string; requirements: SimulationEvidenceRequirements; solverConfig: SimulationEvidenceSolverConfig; replay: SimulationEvidenceReplayRecord; provenance: SimulationProvenance; toleranceTable: SimulationEvidenceToleranceTable; generatedArtifacts: SimulationEvidenceGeneratedArtifact[]; hardwareValidation: SimulationEvidenceHardwareValidation; verificationResult: SimulationEvidenceVerificationResult; } export interface BuildSimulationEvidencePackInput { requirements: SimulationEvidenceRequirements; replay: SimulationEvidenceReplayRecord; provenance: SimulationProvenance; generatedArtifacts: readonly SimulationEvidenceGeneratedArtifact[]; hardwareValidation: SimulationEvidenceHardwareValidation; trace?: CAELTrace; contractConfig?: Record; createdAt?: string; packId?: string; verificationResult?: Partial; } export interface SimulationEvidencePackValidation { valid: boolean; errors: string[]; warnings: string[]; verificationResult: SimulationEvidenceVerificationResult; } export declare function buildSimulationEvidencePack(input: BuildSimulationEvidencePackInput): SimulationEvidencePack; export declare function createGeneratedArtifactReceipt(input: { artifactId: string; kind: string; path: string; content: string | Uint8Array; source?: string; }): SimulationEvidenceGeneratedArtifact; export declare function hashEvidenceArtifact(content: string | Uint8Array): string; export declare function verifySimulationEvidencePackJson(json: string): SimulationEvidencePackValidation; export declare function verifySimulationEvidencePack(pack: unknown): SimulationEvidencePackValidation; //# sourceMappingURL=SimulationEvidencePack.d.ts.map