/**
 * High-level share creation and reconstruction API.
 *
 * Sender pipeline:  serialize (TLV) → pad (PKCS#7) → HMAC (sign) → split (XorIDA)
 * Receiver pipeline: reconstruct (XorIDA) → verify (HMAC) → unpad (PKCS#7) → deserialize (TLV)
 */
import type { Result, XailMessage, XailShare, ReconstructionError } from '@private.me/shared';
/**
 * Create shares from a XailMessage.
 *
 * Pipeline: serialize → pad → HMAC → split → package as XailShare[]
 *
 * @param message - The message to split into shares
 * @param n - Total number of shares to produce
 * @param k - Threshold: minimum shares needed for reconstruction
 * @returns Array of n XailShare objects ready for transport
 */
export declare function createShares(message: XailMessage, n: number, k: number): Promise<XailShare[]>;
/**
 * Reconstruct a XailMessage from k shares.
 *
 * Pipeline: validate → reconstruct → verify HMAC → unpad → deserialize
 *
 * @param shares - Array of k XailShare objects (must share the same UUID)
 * @returns Reconstructed message, or ReconstructionError
 */
export declare function reconstructMessage(shares: readonly XailShare[]): Promise<Result<XailMessage, ReconstructionError>>;
