import { type AsmContractName } from "./schemas.js"; export declare const ASM_CAPABILITIES: readonly ["memory.read", "memory.write", "evidence.read", "retrieval.query", "intent.parse", "intent.route", "policy.decide", "policy.approval", "execution.idempotent", "feedback.write", "state.snapshot", "inference.manifest"]; export type AsmCapability = (typeof ASM_CAPABILITIES)[number]; export interface ContractVersionRange { major: number; minMinor: number; maxMinor: number; } export interface AsmPeerHello { protocol: "asm-contracts"; protocolVersion: 1; contracts: Partial>; capabilities: readonly AsmCapability[]; } export interface NegotiatedContractVersion { major: number; minor: number; } export interface AsmNegotiationResult { contracts: Partial>; capabilities: AsmCapability[]; } export declare const DEFAULT_ASM_HELLO: AsmPeerHello; export declare function negotiateAsmContracts(local: AsmPeerHello, remote: AsmPeerHello): AsmNegotiationResult; export declare function requireNegotiatedCapability(result: AsmNegotiationResult, contract: AsmContractName, capability: AsmCapability): NegotiatedContractVersion; //# sourceMappingURL=negotiation.d.ts.map