import type { Diagnostic, WorkspaceSource } from './compiler.js'; export interface CoreContractFormat { readonly id: string; readonly schema: string; readonly packageExport: string; } export interface CoreContractCommand { readonly name: 'init' | 'design' | 'apply' | 'ask' | 'check' | 'reconcile' | 'export'; readonly binary: 'yarramate'; readonly machineFormat?: string; } export interface CoreContract { readonly format: 'yarramate/core-contract/v1'; readonly id: string; readonly version: string; readonly packageManifest: string; readonly formats: readonly CoreContractFormat[]; readonly commands: readonly CoreContractCommand[]; readonly guarantees: readonly string[]; readonly exclusions: readonly string[]; } export type CoreContractLoadResult = { readonly ok: true; readonly contract: CoreContract; } | { readonly ok: false; readonly diagnostics: readonly Diagnostic[]; }; export interface CoreContractSurface { readonly files: readonly string[]; readonly packageManifestValid: boolean; readonly packageExports: Readonly>; readonly packageBinaries: readonly string[]; readonly schemas?: Readonly>; } export declare function loadCoreContract(source: WorkspaceSource): CoreContractLoadResult; export declare function checkCoreContract(source: WorkspaceSource, surface: CoreContractSurface): CoreContractLoadResult;