///
import { TCurrency } from "./currencies.types";
import { NetTypes } from "./net.types";
export declare type TAddress = string;
export declare type TNetType = NetTypes;
export declare enum AddressFormats {
legacy = "legacy",
slp = "slp",
cash = "cash",
cashaddr = "cashaddr",
unknown = "unknownformat",
slpaddr = "slpaddr",
all = "all"
}
export declare type TAddressFormats = AddressFormats[] | undefined[];
export declare type TIsValidAddress = (address: TAddress, currency?: TCurrency, networkType?: TNetType, addressFormats?: TAddressFormats) => boolean;
export declare type TChecksum = (address: TAddress) => boolean;
export declare type TDecode = (address: TAddress) => number[] | null;
export declare type TDecodeBuffer = (address: TAddress) => Buffer | null;
export declare type TBaseValidator = {
isValidAddress: TIsValidAddress;
} & T;
export declare type TChecksumValidator = TBaseValidator<{
verifyChecksum: TChecksum;
} & T>;
export declare type TDecodeValidator = TBaseValidator<{
getDecoded: TDecode;
} & T>;