import type * as Bytes from '../Bytes.js';
import type * as Hex from '../Hex.js';
import * as PublicKey from '../PublicKey.js';
import * as Signature from '../Signature.js';
/**
 * Coerces a serialized or structured signature input into a structured
 * {@link ox#Signature.Signature} object.
 *
 * Accepts the existing structured form (pass-through), a hex string, or a
 * `Uint8Array` (delegates to `Signature.fromHex` / `Signature.fromBytes`).
 *
 * @internal
 */
export declare function normalizeSignature<recovered extends boolean = boolean>(value: Hex.Hex | Bytes.Bytes | Signature.Signature<recovered> | Signature.Signature<boolean>): Signature.Signature<recovered>;
/**
 * Coerces a serialized or structured public key input into a structured
 * {@link ox#PublicKey.PublicKey}.
 *
 * @internal
 */
export declare function normalizePublicKey<compressed extends boolean = boolean>(value: Hex.Hex | Bytes.Bytes | PublicKey.PublicKey<compressed>): PublicKey.PublicKey<compressed>;
/**
 * Formats a structured {@link ox#Signature.Signature} as the requested
 * representation: the structured object (`'Object'`), serialized hex
 * (`'Hex'`), or serialized bytes (`'Bytes'`).
 *
 * @internal
 */
export declare function formatSignature(signature: Signature.Signature<boolean>, as: 'Hex' | 'Bytes' | 'Object'): unknown;
/**
 * Formats a structured {@link ox#PublicKey.PublicKey} as the requested
 * representation.
 *
 * @internal
 */
export declare function formatPublicKey(publicKey: PublicKey.PublicKey<boolean>, as: 'Hex' | 'Bytes' | 'Object'): unknown;
//# sourceMappingURL=cryptoIo.d.ts.map