/// import { CoinAddress } from '../../ICoinProtocol'; import { SCALEDecodeResult } from '../common/data/scale/SCALEDecoder'; import { SCALEAccountId } from '../common/data/scale/type/SCALEAccountId'; import { SCALEMultiAddress, SCALEMultiAddressType } from '../common/data/scale/type/SCALEMultiAddress'; import { SCALEType } from '../common/data/scale/type/SCALEType'; import { KusamaAddress } from '../kusama/KusamaAddress'; import { MoonbeamAddress } from '../moonbeam/data/account/MoonbeamAddress'; import { PolkadotAddress } from '../polkadot/PolkadotAddress'; import { SubstrateNetwork } from '../SubstrateNetwork'; export declare type SubstrateAccountId = string | T; export interface SubstrateAddressFactory { from(accountId: SubstrateAccountId): SubstrateCompatAddressType[Network]; getPlaceholder(): SubstrateCompatAddressType[Network]; } export interface SCALEAddressFactory { from(value: string | Uint8Array | Buffer | SubstrateCompatAddressType[Network], network: Network): SCALECompatAddressType[Network]; decode(network: Network, runtimeVersion: number | undefined, hex: string): SCALEDecodeResult; } export interface SubstrateCompatAddressType extends Record { [SubstrateNetwork.POLKADOT]: PolkadotAddress; [SubstrateNetwork.KUSAMA]: KusamaAddress; [SubstrateNetwork.MOONBEAM]: MoonbeamAddress; } export interface SCALECompatAddressType extends Record { [SubstrateNetwork.POLKADOT]: SCALEMultiAddress; [SubstrateNetwork.KUSAMA]: SCALEMultiAddress; [SubstrateNetwork.MOONBEAM]: SCALEAccountId; } export declare function substrateAddressFactory(substrateNetwork: Network): SubstrateAddressFactory; export declare function scaleAddressFactory(substrateNetwork: Network): SCALEAddressFactory; export interface SubstrateCompatAddress extends CoinAddress { compare(other: SubstrateAccountId): number; getBufferBytes(): Buffer; getHexBytes(): string; } export declare function isSubstrateCompatAddress(address: unknown): address is SubstrateCompatAddress;