import { type CryptoProvider, type SignKeyPair } from "./crypto-provider.js"; export type { SignKeyPair }; export interface Genome { modelProvider: string; modelId: string; modelVersion: string; systemPromptHash: string; toolManifestHash: string; runtimeId: string; /** Cloud provider (e.g. "aws", "gcp", "azure"). */ cloudProvider?: string; /** Deployment region (e.g. "us-east-1"). */ region?: string; /** Instance type (e.g. "g5.xlarge"). */ instanceType?: string; /** Deployment tier: "tier1" (software) or "tier2" (TEE). */ deploymentTier?: string; createdAt: number; version: number; parentHash: string | null; } export interface GenomeCommitment { genome: Genome; hash: string; signature: string; publicKey: string; did: string; } /** Hash an arbitrary string, returned as hex. Delegates to the active provider. */ export declare function sha256(data: string, provider?: CryptoProvider): string; /** Derive a did:key identifier from a public key. Uses the provider's multicodec prefix. */ export declare function publicKeyToDid(publicKey: Uint8Array, provider?: CryptoProvider): string; /** * Decode a did:key identifier back to its public key bytes. * Strips the multicodec prefix. Throws on malformed input or wrong prefix. */ export declare function didToPublicKey(did: string, provider?: CryptoProvider): Uint8Array; /** * Create a genome from agent configuration. * System prompt and tool manifest are hashed — the originals never leave the agent. */ export declare function createGenome(config: { modelProvider: string; modelId: string; modelVersion: string; systemPrompt: string; toolManifest: string; runtimeId: string; cloudProvider?: string; region?: string; instanceType?: string; deploymentTier?: string; parentHash?: string | null; version?: number; }, provider?: CryptoProvider): Genome; /** Compute the hash of a genome's canonical form. */ export declare function computeHash(genome: Genome, provider?: CryptoProvider): string; /** * Commit a genome by signing its hash with a key pair. * This is the "DNA sequencing" step — the agent declares what it is. */ export declare function commitGenome(genome: Genome, keyPair: SignKeyPair, provider?: CryptoProvider): GenomeCommitment; /** * Verify a genome commitment: * 1. Hash matches the genome document * 2. Signature is valid for the hash * 3. DID matches the public key */ export declare function verifyCommitment(commitment: GenomeCommitment, provider?: CryptoProvider): boolean; /** * Mutate a genome — like biological mutation, tracked and versioned. * Creates a new genome linked to its parent via hash chain. */ export declare function mutateGenome(parent: Genome, parentHash: string, changes: Partial>): Genome; //# sourceMappingURL=genome.d.ts.map