/**
 * Shard-Auth 型定義
 * FROST (Flexible Round-Optimized Schnorr Threshold) 署名の実装
 */
export interface DKGConfig {
    threshold: number;
    parties: number;
    curve: 'secp256k1' | 'ed25519';
    transport?: 'https' | 'wss';
}
export interface DKGSession {
    id: string;
    config: DKGConfig;
    status: 'initialized' | 'in_progress' | 'completed' | 'failed';
    startTime: bigint;
    commitments: Map<number, Buffer>;
    getTransportSecurity(): TransportSecurity;
}
export interface Share {
    index: number;
    share: Buffer;
    publicKeyShare: Buffer;
    commitment: Buffer;
}
export interface ShareA extends Share {
    index: 1;
}
export interface ShareB extends Share {
    index: 2;
}
export interface DKGResult {
    shareA: ShareA;
    shareB: ShareB;
    publicKey: Buffer;
    groupPublicKey: Buffer;
}
export interface Nonce {
    hiding: Buffer;
    binding: Buffer;
}
export interface NonceCommitment {
    hiding: Buffer;
    binding: Buffer;
}
export interface PartialSignature {
    index: number;
    signature: Buffer;
    proof: Buffer;
    nonceCommitment: NonceCommitment;
}
export interface FROSTSignature {
    r: Buffer;
    s: Buffer;
    verify(message: Buffer, publicKey: Buffer): Promise<boolean>;
}
export interface TransportSecurity {
    protocol: string;
    version: number;
    cipherSuite: string;
}
export interface SigningPackage {
    message: Buffer;
    commitments: Map<number, NonceCommitment>;
    bindingFactors: Map<number, Buffer>;
}
export interface SignatureSessionRequest {
    method: string;
    path: string;
    bodyHash: Buffer;
    timestamp: string;
    clientNonceCommitment?: NonceCommitment;
}
export interface SignatureSessionResponse {
    sessionId: string;
    serverNonceCommitment: NonceCommitment;
    expiresAt: string;
}
export interface CompleteSignatureRequest {
    sessionId: string;
    partialSignature: PartialSignature;
}
export interface CompleteSignatureResponse {
    signature: {
        r: string;
        s: string;
    };
    authorizationHeader: string;
}
export interface VerificationResult {
    isValid: boolean;
    publicKey?: string;
    error?: string;
}
export interface APIRequestDetails {
    method: string;
    path: string;
    bodyHash: Buffer;
    timestamp: string;
}
//# sourceMappingURL=types.d.ts.map