import { Capabilities } from "./capabilities.js"; import { Decoder } from "./codec/tlsDecoder.js"; import { BufferEncoder, Encoder } from "./codec/tlsEncoder.js"; import { Credential } from "./credential.js"; import { Signature } from "./crypto/signature.js"; import { Extension } from "./extension.js"; import { Lifetime } from "./lifetime.js"; /** @public */ export interface LeafNodeData { hpkePublicKey: Uint8Array; signaturePublicKey: Uint8Array; credential: Credential; capabilities: Capabilities; } export declare const leafNodeDataEncoder: BufferEncoder; export declare const encodeLeafNodeData: Encoder; export declare const decodeLeafNodeData: Decoder; /** @public */ export type LeafNodeInfoOmitted = LeafNodeInfoKeyPackage | LeafNodeInfoUpdateOmitted | LeafNodeInfoCommitOmitted; /** @public */ export interface LeafNodeInfoUpdateOmitted { leafNodeSource: "update"; extensions: Extension[]; } /** @public */ export interface LeafNodeInfoCommitOmitted { leafNodeSource: "commit"; parentHash: Uint8Array; extensions: Extension[]; } /** @public */ export interface LeafNodeInfoKeyPackage { leafNodeSource: "key_package"; lifetime: Lifetime; extensions: Extension[]; } export declare const leafNodeInfoKeyPackageEncoder: BufferEncoder; export declare const encodeLeafNodeInfoKeyPackage: Encoder; export declare const leafNodeInfoUpdateOmittedEncoder: BufferEncoder; export declare const encodeLeafNodeInfoUpdateOmitted: Encoder; export declare const leafNodeInfoCommitOmittedEncoder: BufferEncoder; export declare const encodeLeafNodeInfoCommitOmitted: Encoder; export declare const leafNodeInfoOmittedEncoder: BufferEncoder; export declare const encodeLeafNodeInfoOmitted: Encoder; export declare const decodeLeafNodeInfoKeyPackage: Decoder; export declare const decodeLeafNodeInfoUpdateOmitted: Decoder; export declare const decodeLeafNodeInfoCommitOmitted: Decoder; export declare const decodeLeafNodeInfoOmitted: Decoder; export type LeafNodeInfo = LeafNodeInfoKeyPackage | LeafNodeInfoUpdate | LeafNodeInfoCommit; export type LeafNodeInfoUpdate = LeafNodeInfoUpdateOmitted & { groupId: Uint8Array; leafIndex: number; }; export type LeafNodeInfoCommit = LeafNodeInfoCommitOmitted & { groupId: Uint8Array; leafIndex: number; }; export declare const leafNodeInfoUpdateEncoder: BufferEncoder; export declare const encodeLeafNodeInfoUpdate: Encoder; export declare const leafNodeInfoCommitEncoder: BufferEncoder; export declare const encodeLeafNodeInfoCommit: Encoder; export declare const leafNodeInfoEncoder: BufferEncoder; export declare const encodeLeafNodeInfo: Encoder; export declare const decodeLeafNodeInfoUpdate: Decoder; export declare const decodeLeafNodeInfoCommit: Decoder; export declare const decodeLeafNodeInfo: Decoder; export type LeafNodeTBS = LeafNodeData & LeafNodeInfo; export type LeafNodeTBSCommit = LeafNodeData & LeafNodeInfoCommit; export type LeafNodeTBSKeyPackage = LeafNodeData & LeafNodeInfoKeyPackage; export declare const leafNodeTBSEncoder: BufferEncoder; export declare const encodeLeafNodeTBS: Encoder; /** @public */ export type LeafNode = LeafNodeData & LeafNodeInfoOmitted & { signature: Uint8Array; }; export declare const leafNodeEncoder: BufferEncoder; export declare const encodeLeafNode: Encoder; export declare const decodeLeafNode: Decoder; /** @public */ export type LeafNodeKeyPackage = LeafNode & { leafNodeSource: "key_package"; }; export declare const decodeLeafNodeKeyPackage: Decoder; /** @public */ export type LeafNodeCommit = LeafNode & { leafNodeSource: "commit"; }; export declare const decodeLeafNodeCommit: Decoder; /** @public */ export type LeafNodeUpdate = LeafNode & { leafNodeSource: "update"; }; export declare const decodeLeafNodeUpdate: Decoder; export declare function signLeafNodeCommit(tbs: LeafNodeTBSCommit, signaturePrivateKey: Uint8Array, sig: Signature): Promise; export declare function signLeafNodeKeyPackage(tbs: LeafNodeTBSKeyPackage, signaturePrivateKey: Uint8Array, sig: Signature): Promise; export declare function verifyLeafNodeSignature(leaf: LeafNode, groupId: Uint8Array, leafIndex: number, sig: Signature): Promise; export declare function verifyLeafNodeSignatureKeyPackage(leaf: LeafNodeKeyPackage, sig: Signature): Promise;