import type { MemoryProvenanceEnvelope, UnsignedMemoryProvenanceEnvelope } from './types.js';
/**
 * Canonicalize an envelope for signing. The signature field is set to
 * the empty string before serialization so signing and verification
 * agree on the bytes-under-signature without either side rebuilding the
 * envelope from a partial shape.
 */
export declare function canonicalizeForSignature(envelope: UnsignedMemoryProvenanceEnvelope | MemoryProvenanceEnvelope): string;
/**
 * Sign an unsigned envelope with an Ed25519 private key (hex). Derives
 * the public key from the private key and writes it into ingester_id on
 * the returned envelope; this guarantees that the embedded ingester_id
 * matches the signing key, which the verifier checks against.
 *
 * If the caller provides their own ingester_id on the input, this
 * helper still derives the public key from the private key and
 * overwrites the field, because a divergence between the embedded
 * ingester_id and the signing key is always a bug.
 */
export declare function signMemoryProvenance(privateKeyHex: string, unsigned: UnsignedMemoryProvenanceEnvelope): MemoryProvenanceEnvelope;
//# sourceMappingURL=envelope.d.ts.map