import type { TagsBase, RecordTags } from '@credo-ts/core'; import { BaseRecord } from '@credo-ts/core'; export type CustomKemKeypairTags = TagsBase; export type DefaultKemKeypairTags = { connectionId: string; kid: string; }; export type KemKeypairTags = RecordTags; export interface KemKeypairRecordProps { id?: string; createdAt?: Date; tags?: CustomKemKeypairTags; connectionId: string; kid: string; publicKey: string; secretKey: string; } /** * Database record for a local ML-KEM keypair * * Stores the full keypair (including secret key) for vault decryption. * Indexed by connectionId and kid for efficient lookups. */ export declare class KemKeypairRecord extends BaseRecord { /** Connection this keypair is associated with */ connectionId: string; /** Key identifier (derived from public key hash) */ kid: string; /** Base64url-encoded ML-KEM public key (1184 bytes for ML-KEM-768) */ publicKey: string; /** Base64url-encoded ML-KEM secret key (2400 bytes for ML-KEM-768) */ secretKey: string; static readonly type = "KemKeypairRecord"; readonly type = "KemKeypairRecord"; constructor(props: KemKeypairRecordProps); getTags(): DefaultKemKeypairTags & CustomKemKeypairTags; }