import { RsvBytesSignature } from '../secp256k1/signature/index.js'; import { SigningKey, ZeroHexSigningKey, BytesSigningKey, ExtSigningKey } from '../secp256k1/signing/index.js'; import { Box } from '@hazae41/box'; import * as _hazae41_secp256k1 from '@hazae41/secp256k1'; import { Address } from '../address/index.js'; import { BytesAsUtf8 } from '../convert/index.js'; declare abstract class Signer { abstract readonly address: Address; abstract readonly signingKey: SigningKey; } declare namespace ZeroHexSigner { type From = Signer | ZeroHexSigningKey.From; } declare class ZeroHexSigner extends Signer { readonly address: Address; readonly signingKey: ZeroHexSigningKey; private constructor(); static fromOrThrow(from: ZeroHexSigner.From): ZeroHexSigner; static fromSignerOrThrow(from: Signer): ZeroHexSigner; static fromSigningKeyOrThrow(from: ZeroHexSigningKey.From): ZeroHexSigner; toJSON(): { address: Address; signingKey: `0x${string}` & { readonly [k: _hazae41_hexane.ZeroHexSymbol]: true; } & { readonly byteLength: 32; }; }; getVerifyingKeyOrThrow(): _hazae41_secp256k1.VerifyingKey; signUnprefixedMessageNoOffsetOrThrow(message: BytesAsUtf8.From): _hazae41_secp256k1.SignatureAndRecovery; signUnprefixedMessageOrThrow(message: BytesAsUtf8.From): RsvBytesSignature; signMessageNoOffsetOrThrow(message: BytesAsUtf8.From): _hazae41_secp256k1.SignatureAndRecovery; signMessageOrThrow(message: BytesAsUtf8.From): RsvBytesSignature; } declare namespace BytesSigner { type From = Signer | BytesSigningKey.From; } declare class BytesSigner { readonly address: Address; readonly signingKey: BytesSigningKey; private constructor(); static fromOrThrow(from: BytesSigner.From): BytesSigner; static fromSignerOrThrow(from: Signer): BytesSigner; static fromSigningKeyOrThrow(from: BytesSigningKey.From): BytesSigner; toJSON(): { address: Address; signingKey: `0x${string}` & { readonly [k: _hazae41_hexane.ZeroHexSymbol]: true; } & { readonly byteLength: 32; }; }; getVerifyingKeyOrThrow(): _hazae41_secp256k1.VerifyingKey; signUnprefixedMessageNoOffsetOrThrow(message: BytesAsUtf8.From): _hazae41_secp256k1.SignatureAndRecovery; signUnprefixedMessageOrThrow(message: BytesAsUtf8.From): RsvBytesSignature; signMessageNoOffsetOrThrow(message: BytesAsUtf8.From): _hazae41_secp256k1.SignatureAndRecovery; signMessageOrThrow(message: BytesAsUtf8.From): RsvBytesSignature; } declare namespace ExtSigner { type From = Signer | ExtSigningKey.From; } declare class ExtSigner { readonly address: Address; readonly signingKey: ExtSigningKey; constructor(address: Address, signingKey: ExtSigningKey); [Symbol.dispose](): void; static randomOrThrow(): ExtSigner; static fromOrThrow(from: ExtSigner.From): Box; static fromSignerOrThrow(from: Signer): Box; static fromSigningKeyOrThrow(from: ExtSigningKey.From): Box; toJSON(): { address: Address; signingKey: `0x${string}` & { readonly [k: _hazae41_hexane.ZeroHexSymbol]: true; } & { readonly byteLength: 32; }; }; getVerifyingKeyOrThrow(): _hazae41_secp256k1.VerifyingKey; signUnprefixedMessageNoOffsetOrThrow(message: BytesAsUtf8.From): _hazae41_secp256k1.SignatureAndRecovery; signUnprefixedMessageOrThrow(message: BytesAsUtf8.From): RsvBytesSignature; signMessageNoOffsetOrThrow(message: BytesAsUtf8.From): _hazae41_secp256k1.SignatureAndRecovery; signMessageOrThrow(message: BytesAsUtf8.From): RsvBytesSignature; } export { BytesSigner, ExtSigner, Signer, ZeroHexSigner };