import { HexInput, SigningScheme } from "../../types/index.js";
import { AccountPublicKey } from "./publicKey.js";
import { BaseAccountPublicKey } from "./types.js";
/**
 * Normalizes a sign/verify message into a {@link HexInput} that downstream
 * callers can pass to `Hex.fromHexInput()`.
 *
 * Behavior — be aware before passing a string:
 * - `Uint8Array` → returned as-is (used as raw bytes).
 * - String that parses as hex via `Hex.isValid()` (with or without a `0x`
 *   prefix) → returned as the original hex string, which downstream
 *   `Hex.fromHexInput()` decodes to its byte form.
 * - Any other string → returned as the UTF-8 byte encoding of the string.
 *
 * **AMBIGUITY**: a bare even-length string of hex characters is *always*
 * interpreted as hex, even when the caller intended it as text. For example:
 *
 * ```ts
 * sign("cafe")       // signs 2 bytes: [0xCA, 0xFE]
 * sign("decade")     // signs 3 bytes: [0xDE, 0xCA, 0xDE]
 * sign("0xcafe")     // signs 2 bytes: [0xCA, 0xFE]   (explicit hex)
 * sign("hello")      // signs 5 bytes: UTF-8 "hello"  (not valid hex)
 * sign(new TextEncoder().encode("cafe"))  // signs 4 bytes: UTF-8 "cafe"
 * ```
 *
 * If you mean *text*, pass `TextEncoder.encode(text)` or any `Uint8Array`.
 * If you mean *hex bytes*, the most explicit form is also a `Uint8Array`
 * (`Hex.fromHexInput("0x...").toUint8Array()`), or a string prefixed with
 * `0x` for clarity. The heuristic is preserved as-is for backwards
 * compatibility — changing it would silently re-interpret bytes signed by
 * existing dApps and wallets — but new code should treat string inputs to
 * `sign()` / `verifySignature()` as untyped and prefer `Uint8Array`.
 *
 * @param message a message as a string or Uint8Array
 *
 * @returns a valid HexInput - string or Uint8Array
 * @group Implementation
 * @category Serialization
 */
export declare const convertSigningMessage: (message: HexInput) => HexInput;
export declare const accountPublicKeyToBaseAccountPublicKey: (publicKey: AccountPublicKey) => BaseAccountPublicKey;
export declare const accountPublicKeyToSigningScheme: (publicKey: AccountPublicKey) => SigningScheme;
//# sourceMappingURL=utils.d.ts.map