/** * Split paper key interfaces for the BrightChain identity system. * * Split paper keys use Shamir's Secret Sharing to divide a 24-word * BIP39 mnemonic into N shares with a configurable threshold T. * Any T shares can reconstruct the original paper key, but fewer * than T shares reveal no information about it. * * Each share is itself encoded as BIP39 words for human readability * and includes a QR code for convenient mobile scanning. * * All data interfaces are generic over TId so the same interface * can serve as a DTO for React clients (string) and as the concrete * type used inside Node services (GuidV4Buffer / Uint8Array). * * Requirements: 2.7 */ /** * Printable template for a single Shamir's Secret Sharing share * of a split paper key. * * @remarks * Generated by the Split Paper Key Service, each share template * contains the BIP39-encoded share words, a QR code for scanning, * and human-readable instructions that include the share number, * total share count, and reconstruction threshold. * * Share templates are intended to be printed and distributed to * trusted parties—never stored digitally after generation. * * @example * ```typescript * const share: ISplitPaperKeyShare = { * shareNumber: 1, * totalShares: 3, * threshold: 2, * words: ['abandon', 'ability', ...], // BIP39-encoded share * qrCode: 'data:image/png;base64,...', * createdAt: new Date(), * instructions: 'This is share 1 of 3. You need 2 shares to recover your account.', * }; * ``` */ export interface ISplitPaperKeyShare { /** Sequential number of this share (1-based, e.g. 1 of 3) */ shareNumber: number; /** Total number of shares the paper key was split into */ totalShares: number; /** * Minimum number of shares required to reconstruct the paper key. * * @remarks * Must satisfy 2 ≤ threshold ≤ totalShares. Fewer than threshold * shares reveal no information about the original paper key. */ threshold: number; /** BIP39-encoded words representing this share's secret data */ words: string[]; /** QR code encoding the share words, as a data URL for printing/scanning */ qrCode: string; /** Timestamp when this share template was generated */ createdAt: Date; /** * Human-readable instructions for the share holder. * * @remarks * Typically includes the share number, total shares, and threshold * so the holder understands how many collaborators are needed for * reconstruction. */ instructions: string; } //# sourceMappingURL=splitPaperKey.d.ts.map