/**
 * Shamir Implementation Comparison
 *
 * This module provides tools for comparing our Shamir Secret Sharing
 * implementation against reference implementations for interoperability
 * verification.
 *
 * Reference implementations compared:
 * - HashiCorp Vault (https://github.com/hashicorp/vault)
 * - secrets.js (https://github.com/grempe/secrets.js)
 *
 * @module security/crypto/shamir/comparison
 */
import { VerifiedShare } from './types';
/**
 * Share format used by HashiCorp Vault.
 *
 * Vault uses GF(2^8) with the same irreducible polynomial (0x11B).
 * Share format: first byte is x-coordinate, remaining bytes are y-values.
 */
export interface VaultShare {
    x: number;
    y: Uint8Array;
}
/**
 * Share format used by secrets.js.
 *
 * secrets.js uses a hexadecimal string format with embedded metadata.
 */
export interface SecretsJsShare {
    bits: number;
    id: number;
    data: string;
}
/**
 * Convert our VerifiedShare to Vault format.
 */
export declare function toVaultFormat(share: VerifiedShare): VaultShare;
/**
 * Convert Vault format to our VerifiedShare.
 */
export declare function fromVaultFormat(vaultShare: VaultShare): VerifiedShare;
/**
 * Verify compatibility with HashiCorp Vault Shamir implementation.
 *
 * Vault uses the same GF(2^8) field with polynomial 0x11B (AES field).
 * We verify that:
 * 1. Field operations produce identical results
 * 2. Polynomial evaluation matches
 * 3. Lagrange interpolation matches
 */
export declare function verifyVaultCompatibility(): {
    compatible: boolean;
    checks: Array<{
        name: string;
        passed: boolean;
        details: string;
    }>;
};
/**
 * Convert our VerifiedShare to secrets.js format.
 *
 * secrets.js uses a hex string format: "801" + id(hex) + data(hex)
 * where 8 indicates 8-bit shares, 01 is version.
 */
export declare function toSecretsJsFormat(share: VerifiedShare): string;
/**
 * Parse secrets.js format to our VerifiedShare.
 */
export declare function fromSecretsJsFormat(shareStr: string): VerifiedShare;
/**
 * Verify compatibility with secrets.js implementation.
 *
 * secrets.js also uses GF(2^8) but with some differences in how
 * shares are encoded and processed.
 */
export declare function verifySecretsJsCompatibility(): {
    compatible: boolean;
    checks: Array<{
        name: string;
        passed: boolean;
        details: string;
    }>;
};
/**
 * Generate test vectors that can be verified against external implementations.
 */
export declare function generateInteropTestVectors(): Array<{
    description: string;
    secret: string;
    threshold: number;
    totalShares: number;
    shares: Array<{
        vaultFormat: string;
        secretsJsFormat: string;
    }>;
}>;
/**
 * Run comprehensive interoperability verification.
 */
export declare function runInteroperabilityTests(): {
    allCompatible: boolean;
    vault: ReturnType<typeof verifyVaultCompatibility>;
    secretsJs: ReturnType<typeof verifySecretsJsCompatibility>;
    testVectors: ReturnType<typeof generateInteropTestVectors>;
};
/**
 * Document known differences between implementations.
 */
export declare const IMPLEMENTATION_DIFFERENCES: {
    vaultShamir: {
        description: string;
        similarities: string[];
        differences: string[];
        compatibility: string;
    };
    secretsJs: {
        description: string;
        similarities: string[];
        differences: string[];
        compatibility: string;
    };
};
/**
 * Get compatibility report.
 */
export declare function getCompatibilityReport(): string;
//# sourceMappingURL=comparison.d.ts.map