import { Equal, FastCheck, Hash, Inspectable, Schema } from "effect";
import type { PrivateKey } from "./PrivateKey.js";
import * as VKey from "./VKey.js";
declare const KeyHash_base: Schema.TaggedClass<KeyHash, "KeyHash", {
    readonly _tag: Schema.tag<"KeyHash">;
} & {
    hash: Schema.filter<Schema.Schema<Uint8Array<ArrayBufferLike>, string, never>>;
}>;
/**
 * KeyHash
 *
 * CDDL:
 * ```
 * addr_keyhash = hash28
 * ```
 *
 * @since 2.0.0
 * @category model
 */
export declare class KeyHash extends KeyHash_base {
    toJSON(): {
        _tag: "KeyHash";
        hash: string;
    };
    toString(): string;
    [Inspectable.NodeInspectSymbol](): unknown;
    [Equal.symbol](that: unknown): boolean;
    [Hash.symbol](): number;
}
/**
 * Schema transformer from bytes to KeyHash.
 *
 * @since 2.0.0
 * @category transformer
 */
export declare const FromBytes: Schema.transform<Schema.SchemaClass<Uint8Array<ArrayBufferLike>, Uint8Array<ArrayBufferLike>, never>, Schema.SchemaClass<KeyHash, KeyHash, never>>;
/**
 * Schema transformer from hex string to KeyHash.
 *
 * @since 2.0.0
 * @category transformer
 */
export declare const FromHex: Schema.transform<Schema.filter<Schema.Schema<Uint8Array<ArrayBufferLike>, string, never>>, Schema.transform<Schema.SchemaClass<Uint8Array<ArrayBufferLike>, Uint8Array<ArrayBufferLike>, never>, Schema.SchemaClass<KeyHash, KeyHash, never>>>;
/**
 * Decode a KeyHash from raw bytes.
 *
 * @since 2.0.0
 * @category encoding/decoding
 */
export declare const fromBytes: (i: Uint8Array<ArrayBufferLike>, overrideOptions?: import("effect/SchemaAST").ParseOptions) => KeyHash;
/**
 * Decode a KeyHash from a hex string.
 *
 * @since 2.0.0
 * @category encoding/decoding
 */
export declare const fromHex: (i: string, overrideOptions?: import("effect/SchemaAST").ParseOptions) => KeyHash;
/**
 * Convert a KeyHash to raw bytes.
 *
 * @since 2.0.0
 * @category encoding/decoding
 */
export declare const toBytes: (a: KeyHash, overrideOptions?: import("effect/SchemaAST").ParseOptions) => Uint8Array<ArrayBufferLike>;
/**
 * Convert a KeyHash to a hex string.
 *
 * @since 2.0.0
 * @category encoding/decoding
 */
export declare const toHex: (a: KeyHash, overrideOptions?: import("effect/SchemaAST").ParseOptions) => string;
/**
 * Schema transformer from bech32 string (addr_vkh1...) to KeyHash.
 * Uses the CIP-0005 `addr_vkh` prefix for address verification key hashes.
 *
 * @since 2.0.0
 * @category transformer
 */
export declare const FromBech32: Schema.transformOrFail<typeof Schema.String, Schema.SchemaClass<KeyHash, KeyHash, never>, never>;
/**
 * Parse a KeyHash from a bech32 string (addr_vkh1...).
 *
 * @since 2.0.0
 * @category encoding/decoding
 */
export declare const fromBech32: (i: string, overrideOptions?: import("effect/SchemaAST").ParseOptions) => KeyHash;
/**
 * Convert a KeyHash to a bech32 string (addr_vkh1...).
 *
 * @since 2.0.0
 * @category encoding/decoding
 */
export declare const toBech32: (a: KeyHash, overrideOptions?: import("effect/SchemaAST").ParseOptions) => string;
/**
 * FastCheck arbitrary for generating random KeyHash instances.
 *
 * @since 2.0.0
 * @category arbitrary
 */
export declare const arbitrary: FastCheck.Arbitrary<KeyHash>;
/**
 * Create a KeyHash from a PrivateKey
 *
 * @since 2.0.0
 * @category constructors
 */
export declare const fromPrivateKey: (privateKey: PrivateKey) => KeyHash;
/**
 * Create a KeyHash from a VKey
 *
 * @since 2.0.0
 * @category constructors
 */
export declare const fromVKey: (vkey: VKey.VKey) => KeyHash;
export {};
//# sourceMappingURL=KeyHash.d.ts.map