import type ArvoContract from '..'; import type { ArvoSemanticVersion } from '../../types'; import { EventDataschemaUtil } from '../../utils'; import { WildCardArvoSemanticVersion } from '../WildCardArvoSemanticVersion'; import type { ArvoContractRecord } from '../types'; import type { VersionedArvoContractJSONSchema, VersionedArvoContractParam } from './types'; import { transformEmitsToArray } from './utils'; /** * Implements a version-specific view of an ArvoContract with type-safe schema validation * and JSON Schema generation capabilities. */ export declare class VersionedArvoContract { protected readonly _contract: TContract; protected readonly _version: TVersion; protected readonly _accepts: ArvoContractRecord; protected readonly _emits: TContract['versions'][TVersion]['emits']; protected readonly _emitList: ReturnType>; get uri(): TContract['uri']; get version(): TVersion; get description(): TContract['description']; get metadata(): TContract['metadata']; get systemError(): TContract['systemError'] & { dataschema: ReturnType>; }; get accepts(): ArvoContractRecord; get emits(): TContract["versions"][TVersion]["emits"]; get emitList(): { [K in keyof TContract["versions"][TVersion]["emits"] & string]: ArvoContractRecord; }[keyof TContract["versions"][TVersion]["emits"] & string][]; get dataschema(): `${TContract["uri"]}/${TVersion}`; get domain(): string | null; constructor(param: VersionedArvoContractParam); /** * Converts the contract to JSON Schema format * @returns Contract specification in JSON Schema format for documentation/serialization */ toJsonSchema(): VersionedArvoContractJSONSchema; }