import { FastCheck, Schema, ParseResult } from "effect";
import * as PointerAddress from "./PointerAddress.js";
import * as BaseAddress from "./BaseAddress.js";
import * as EnterpriseAddress from "./EnterpriseAddress.js";
import * as RewardAccount from "./RewardAccount.js";
import * as ByronAddress from "./ByronAddress.js";
declare const AddressError_base: new = {}>(args: import("effect/Types").Equals extends true ? void : { readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }) => import("effect/Cause").YieldableError & {
readonly _tag: "AddressError";
} & Readonly;
/**
* CDDL specs
* ; address format:
* ; [ 8 bit header | payload ];
* ;
* ; shelley payment addresses:
* ; bit 7: 0
* ; bit 6: base/other
* ; bit 5: pointer/enterprise [for base: stake cred is keyhash/scripthash]
* ; bit 4: payment cred is keyhash/scripthash
* ; bits 3-0: network id
* ;
* ; reward addresses:
* ; bits 7-5: 111
* ; bit 4: credential is keyhash/scripthash
* ; bits 3-0: network id
* ;
* ; byron addresses:
* ; bits 7-4: 1000
* ;
* ; 0000: base address: keyhash28,keyhash28
* ; 0001: base address: scripthash28,keyhash28
* ; 0010: base address: keyhash28,scripthash28
* ; 0011: base address: scripthash28,scripthash28
* ; 0100: pointer address: keyhash28, 3 variable length uint
* ; 0101: pointer address: scripthash28, 3 variable length uint
* ; 0110: enterprise address: keyhash28
* ; 0111: enterprise address: scripthash28
* ; 1000: byron address
* ; 1110: reward account: keyhash28
* ; 1111: reward account: scripthash28
* ; 1001-1101: future formats
*/
/**
* Error thrown when address operations fail
*
* @since 2.0.0
* @category model
*/
export declare class AddressError extends AddressError_base<{
message: string;
cause?: unknown;
}> {
}
/**
* Union type representing all possible address types.
*
* @since 2.0.0
* @category model
*/
export declare const Address: Schema.Union<[typeof BaseAddress.BaseAddress, typeof EnterpriseAddress.EnterpriseAddress, typeof PointerAddress.PointerAddress, typeof RewardAccount.RewardAccount, typeof ByronAddress.ByronAddress]>;
/**
* Type representing an address.
*
* @since 2.0.0
* @category model
*/
export type Address = typeof Address.Type;
/**
* Schema for encoding/decoding addresses as bytes.
*
* @since 2.0.0
* @category schema
*/
export declare const BytesSchema: Schema.transformOrFail, Uint8Array, never>, Schema.Union<[typeof BaseAddress.BaseAddress, typeof EnterpriseAddress.EnterpriseAddress, typeof PointerAddress.PointerAddress, typeof RewardAccount.RewardAccount, typeof ByronAddress.ByronAddress]>, never>;
/**
* Schema for encoding/decoding addresses as hex strings.
*
* @since 2.0.0
* @category schema
*/
export declare const HexStringSchema: Schema.transformOrFail, string & import("effect/Brand").Brand<"HexString">, never>, Schema.Union<[typeof BaseAddress.BaseAddress, typeof EnterpriseAddress.EnterpriseAddress, typeof PointerAddress.PointerAddress, typeof RewardAccount.RewardAccount, typeof ByronAddress.ByronAddress]>, never>;
/**
* Schema for encoding/decoding addresses as Bech32 strings.
*
* @since 2.0.0
* @category schema
*/
export declare const Bech32Schema: Schema.transformOrFail, string & import("effect/Brand").Brand<"Bech32">, never>, Schema.Union<[typeof BaseAddress.BaseAddress, typeof EnterpriseAddress.EnterpriseAddress, typeof PointerAddress.PointerAddress, typeof RewardAccount.RewardAccount, typeof ByronAddress.ByronAddress]>, never>;
/**
* Checks if two addresses are equal.
*
* @since 2.0.0
* @category utils
*/
export declare const equals: (a: Address, b: Address) => boolean;
/**
* FastCheck generator for addresses.
*
* @since 2.0.0
* @category testing
*/
export declare const generator: FastCheck.Arbitrary;
/**
* Synchronous encoding utilities for addresses.
*
* @since 2.0.0
* @category encoding/decoding
*/
export declare const Encode: {
bech32: (a: PointerAddress.PointerAddress | BaseAddress.BaseAddress | EnterpriseAddress.EnterpriseAddress | RewardAccount.RewardAccount | ByronAddress.ByronAddress, overrideOptions?: import("effect/SchemaAST").ParseOptions) => string & import("effect/Brand").Brand<"Bech32">;
hex: (a: PointerAddress.PointerAddress | BaseAddress.BaseAddress | EnterpriseAddress.EnterpriseAddress | RewardAccount.RewardAccount | ByronAddress.ByronAddress, overrideOptions?: import("effect/SchemaAST").ParseOptions) => string & import("effect/Brand").Brand<"HexString">;
bytes: (a: PointerAddress.PointerAddress | BaseAddress.BaseAddress | EnterpriseAddress.EnterpriseAddress | RewardAccount.RewardAccount | ByronAddress.ByronAddress, overrideOptions?: import("effect/SchemaAST").ParseOptions) => Uint8Array;
};
/**
* Synchronous decoding utilities for addresses.
*
* @since 2.0.0
* @category encoding/decoding
*/
export declare const Decode: {
bech32: (u: unknown, overrideOptions?: import("effect/SchemaAST").ParseOptions) => PointerAddress.PointerAddress | BaseAddress.BaseAddress | EnterpriseAddress.EnterpriseAddress | RewardAccount.RewardAccount | ByronAddress.ByronAddress;
hex: (u: unknown, overrideOptions?: import("effect/SchemaAST").ParseOptions) => PointerAddress.PointerAddress | BaseAddress.BaseAddress | EnterpriseAddress.EnterpriseAddress | RewardAccount.RewardAccount | ByronAddress.ByronAddress;
bytes: (u: unknown, overrideOptions?: import("effect/SchemaAST").ParseOptions) => PointerAddress.PointerAddress | BaseAddress.BaseAddress | EnterpriseAddress.EnterpriseAddress | RewardAccount.RewardAccount | ByronAddress.ByronAddress;
};
/**
* Either encoding utilities for addresses.
*
* @since 2.0.0
* @category encoding/decoding
*/
export declare const EncodeEither: {
bech32: (a: PointerAddress.PointerAddress | BaseAddress.BaseAddress | EnterpriseAddress.EnterpriseAddress | RewardAccount.RewardAccount | ByronAddress.ByronAddress, overrideOptions?: import("effect/SchemaAST").ParseOptions) => import("effect/Either").Either, ParseResult.ParseError>;
hex: (a: PointerAddress.PointerAddress | BaseAddress.BaseAddress | EnterpriseAddress.EnterpriseAddress | RewardAccount.RewardAccount | ByronAddress.ByronAddress, overrideOptions?: import("effect/SchemaAST").ParseOptions) => import("effect/Either").Either, ParseResult.ParseError>;
bytes: (a: PointerAddress.PointerAddress | BaseAddress.BaseAddress | EnterpriseAddress.EnterpriseAddress | RewardAccount.RewardAccount | ByronAddress.ByronAddress, overrideOptions?: import("effect/SchemaAST").ParseOptions) => import("effect/Either").Either, ParseResult.ParseError>;
};
/**
* Either decoding utilities for addresses.
*
* @since 2.0.0
* @category encoding/decoding
*/
export declare const DecodeEither: {
bech32: (u: unknown, overrideOptions?: import("effect/SchemaAST").ParseOptions) => import("effect/Either").Either;
hex: (u: unknown, overrideOptions?: import("effect/SchemaAST").ParseOptions) => import("effect/Either").Either;
bytes: (u: unknown, overrideOptions?: import("effect/SchemaAST").ParseOptions) => import("effect/Either").Either;
};
export {};
//# sourceMappingURL=Address.d.ts.map