import { Either as E, Equal, FastCheck, Hash, Inspectable, Schema } from "effect";
declare const Bip32PublicKeyError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
    readonly _tag: "Bip32PublicKeyError";
} & Readonly<A>;
/**
 * Error class for Bip32PublicKey related operations.
 *
 * @since 2.0.0
 * @category errors
 */
export declare class Bip32PublicKeyError extends Bip32PublicKeyError_base<{
    message?: string;
    cause?: unknown;
}> {
}
declare const Bip32PublicKey_base: Schema.TaggedClass<Bip32PublicKey, "Bip32PublicKey", {
    readonly _tag: Schema.tag<"Bip32PublicKey">;
} & {
    bytes: Schema.filter<Schema.Schema<Uint8Array<ArrayBufferLike>, string, never>>;
}>;
/**
 * Schema for Bip32PublicKey representing a BIP32-Ed25519 extended public key.
 * Always 64 bytes: 32-byte public key + 32-byte chaincode.
 * Follows BIP32-Ed25519 hierarchical deterministic key derivation.
 * Supports soft derivation only (hardened derivation requires private key).
 *
 * @since 2.0.0
 * @category schemas
 */
export declare class Bip32PublicKey extends Bip32PublicKey_base {
    toJSON(): {
        _tag: "Bip32PublicKey";
        bytes: string;
    };
    toString(): string;
    [Inspectable.NodeInspectSymbol](): unknown;
    [Equal.symbol](that: unknown): boolean;
    [Hash.symbol](): number;
}
/**
 * Schema for transforming between Uint8Array and Bip32PublicKey.
 *
 * @since 2.0.0
 * @category schemas
 */
export declare const FromBytes: Schema.transform<Schema.SchemaClass<Uint8Array<ArrayBufferLike>, Uint8Array<ArrayBufferLike>, never>, Schema.SchemaClass<Bip32PublicKey, Bip32PublicKey, never>>;
/**
 * Schema for transforming between hex string and Bip32PublicKey.
 *
 * @since 2.0.0
 * @category schemas
 */
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<Bip32PublicKey, Bip32PublicKey, never>>>;
/**
 * FastCheck arbitrary for generating random Bip32PublicKey instances.
 *
 * @since 2.0.0
 * @category arbitrary
 */
export declare const arbitrary: FastCheck.Arbitrary<Bip32PublicKey>;
/**
 * Create a BIP32 public key from public key and chain code bytes.
 *
 * @since 2.0.0
 * @category parsing
 */
export declare const fromBytes: (i: Uint8Array<ArrayBufferLike>, overrideOptions?: import("effect/SchemaAST").ParseOptions) => Bip32PublicKey;
/**
 * Parse Bip32PublicKey from hex string.
 *
 * @since 2.0.0
 * @category parsing
 */
export declare const fromHex: (i: string, overrideOptions?: import("effect/SchemaAST").ParseOptions) => Bip32PublicKey;
/**
 * Convert a Bip32PublicKey to raw bytes (64 bytes).
 *
 * @since 2.0.0
 * @category encoding
 */
export declare const toBytes: (a: Bip32PublicKey, overrideOptions?: import("effect/SchemaAST").ParseOptions) => Uint8Array<ArrayBufferLike>;
/**
 * Convert a Bip32PublicKey to hex string.
 *
 * @since 2.0.0
 * @category encoding
 */
export declare const toHex: (a: Bip32PublicKey, overrideOptions?: import("effect/SchemaAST").ParseOptions) => string;
/**
 * Convert a Bip32PublicKey to raw public key bytes (32 bytes only).
 *
 * @since 2.0.0
 * @category encoding
 */
export declare const toRawBytes: (bip32PublicKey: Bip32PublicKey) => Uint8Array;
/**
 * Derive a child public key using the specified index (soft derivation only).
 *
 * @since 2.0.0
 * @category derivation
 */
export declare const deriveChild: (bip32PublicKey: Bip32PublicKey, index: number) => Bip32PublicKey;
/**
 * Get the chain code.
 *
 * @since 2.0.0
 * @category accessors
 */
export declare const chainCode: (bip32PublicKey: Bip32PublicKey) => Uint8Array;
/**
 * Get the public key bytes.
 *
 * @since 2.0.0
 * @category accessors
 */
export declare const publicKey: (bip32PublicKey: Bip32PublicKey) => Uint8Array;
/**
 * Either-based error handling variants for functions that can fail.
 *
 * @since 2.0.0
 * @category either
 */
export declare namespace Either {
    /**
     * Derive a child public key using the specified index with Either error handling.
     * Only supports soft derivation (index < 0x80000000).
     *
     * @since 2.0.0
     * @category derivation
     */
    const deriveChild: (bip32PublicKey: Bip32PublicKey, index: number) => E.Either<Bip32PublicKey, unknown>;
}
export {};
//# sourceMappingURL=Bip32PublicKey.d.ts.map