import { type CAELTrace, verifyCAELHashChain } from './CAELTrace'; import { type HashMode } from './sha256'; export type RoboticsJsonValue = string | number | boolean | null | RoboticsJsonValue[] | { [key: string]: RoboticsJsonValue; }; export type RoboticsArtifactFormat = 'urdf' | 'sdf' | 'usd-physics'; export type RoboticsSimulatorTarget = 'isaac_sim' | 'gazebo' | 'ros2'; export type RoboticsRequiredSensorType = 'camera' | 'lidar' | 'imu'; export interface RoboticsArtifactProvenance { compiler: 'URDFCompiler' | 'SDFCompiler' | 'USDPhysicsCompiler'; sourceComposition: string; sourceHash: string; generatedAt: string; options?: Record; } export interface RoboticsArtifact { id: string; format: RoboticsArtifactFormat; targetContext: RoboticsSimulatorTarget; content: string; provenance?: RoboticsArtifactProvenance; path?: string; } export interface RoboticsCameraMetadata { width: number; height: number; horizontalFovRadians: number; format: string; } export interface RoboticsLidarMetadata { samples: number; minRangeMeters: number; maxRangeMeters: number; horizontalFovRadians: number; } export interface RoboticsImuMetadata { noiseDensity: number; biasStability?: number; } export interface RoboticsSensorMetadata { name: string; type: RoboticsRequiredSensorType; parentLink: string; frameName: string; topicName: string; updateRateHz: number; camera?: RoboticsCameraMetadata; lidar?: RoboticsLidarMetadata; imu?: RoboticsImuMetadata; } export interface RoboticsRos2TopicMapping { sensorName: string; sensorType: RoboticsRequiredSensorType; topicName: string; messageType: string; frameName: string; } export interface RoboticsRos2TopicProof { topicName: string; messageType: string; publisher: string; subscriber: string; messagesPublished: number; messagesReceived: number; } export interface RoboticsRos2PubSubProof { mode: 'simulated' | 'real'; nodeName: string; transport: 'rclnodejs' | 'ros2-cli' | 'simulated-bridge'; topics: readonly RoboticsRos2TopicProof[]; } export interface RoboticsSyntheticDataExportFixture { exportId: string; format: 'coco' | 'rosbag2' | 'jsonl' | 'parquet'; frameCount: number; sensorNames: readonly string[]; labels: readonly string[]; artifactHash: string; } export interface RoboticsImportScenario { name: string; description?: string; simulatorTargets?: readonly RoboticsSimulatorTarget[]; physicsStepHz: number; durationSeconds: number; checks: readonly string[]; } export interface RoboticsImportValidationInput { artifacts: readonly RoboticsArtifact[]; sensors: readonly RoboticsSensorMetadata[]; ros2TopicMappings: readonly RoboticsRos2TopicMapping[]; ros2Proof: RoboticsRos2PubSubProof; syntheticData: RoboticsSyntheticDataExportFixture; scenario: RoboticsImportScenario; holokey?: string; } export interface RoboticsArtifactHashReceipt { id: string; format: RoboticsArtifactFormat; targetContext: RoboticsSimulatorTarget; hash: string; compiler: string; sourceComposition?: string; sourceHash?: string; path?: string; } export interface RoboticsSensorCoverageReceipt { required: readonly RoboticsRequiredSensorType[]; covered: RoboticsRequiredSensorType[]; missing: RoboticsRequiredSensorType[]; sensors: readonly RoboticsSensorMetadata[]; } export interface RoboticsRos2ProofReceipt { mode: 'simulated' | 'real'; explicitlySimulated: boolean; transport: RoboticsRos2PubSubProof['transport']; nodeName: string; topics: readonly RoboticsRos2TopicProof[]; missingTopics: string[]; passed: boolean; } export interface RoboticsSyntheticDataReceipt { exportId: string; format: RoboticsSyntheticDataExportFixture['format']; frameCount: number; sensorNames: readonly string[]; labels: readonly string[]; artifactHash: string; missingSensors: string[]; passed: boolean; } export interface RoboticsReceiptTriad { semanticReceiptId: string; provenanceReceiptId: string; replayReceiptId: string; } export interface RoboticsCustodyReceipt { holokey: string; docsUmbrella: 'HoloGate'; docsUmbrellaRole: 'umbrella term in docs, not an executable tool'; umbrellaRoute: string; concreteTools: readonly string[]; bridgeContract: 'bridge-and-validate open robotics standards, not an Isaac Sim clone'; } export interface RoboticsImportValidationReceipt { receiptId: string; simulatorTarget: RoboticsSimulatorTarget; importLane: string; pass: boolean; failureReasons: string[]; artifactHashes: RoboticsArtifactHashReceipt[]; scenario: RoboticsImportScenario; sensorCoverage: RoboticsSensorCoverageReceipt; ros2Proof: RoboticsRos2ProofReceipt; syntheticData: RoboticsSyntheticDataReceipt; triad: RoboticsReceiptTriad; custody: RoboticsCustodyReceipt; traceIndex: number; caelTraceHash: string; prevHash: string; } export interface RoboticsImportValidationResult { pass: boolean; receipts: RoboticsImportValidationReceipt[]; trace: CAELTrace; verification: ReturnType; } export interface RoboticsImportValidationHarnessOptions { runId?: string; hashMode?: HashMode; holokey?: string; umbrellaRoute?: string; clock?: () => number; } export declare class RoboticsImportValidationHarness { private readonly runId; private readonly hashMode; private readonly holokey; private readonly umbrellaRoute; private readonly clock; private readonly trace; private lastHash; constructor(options?: RoboticsImportValidationHarnessOptions); validate(input: RoboticsImportValidationInput): RoboticsImportValidationResult; getTrace(): CAELTrace; private validateTarget; private appendTrace; private triadForReceipt; private custody; } export declare function validateRoboticsImport(input: RoboticsImportValidationInput, options?: RoboticsImportValidationHarnessOptions): RoboticsImportValidationResult; export declare function runRoboticsImportValidationDemo(input: RoboticsImportValidationInput, options?: RoboticsImportValidationHarnessOptions): RoboticsImportValidationResult; //# sourceMappingURL=RoboticsImportValidation.d.ts.map