/// import { PublicKey } from '@airgap/module-kit'; import { SubstrateAccountConfiguration, SubstrateProtocolConfiguration } from '../../../types/configuration'; import { SCALEDecodeResult } from '../../scale/SCALEDecoder'; import { SCALEAccountId } from '../../scale/type/SCALEAccountId'; import { SCALEMultiAddress, SCALEMultiAddressType } from '../../scale/type/SCALEMultiAddress'; import { SCALEType } from '../../scale/type/SCALEType'; import { SubstrateAccountId, SubstrateAddress } from './SubstrateAddress'; import { SubstrateEthAddress } from './SubstrateEthAddress'; import { SubstrateSS58Address } from './SubstrateSS58Address'; export interface SubstrateAddressFactory { from(accountId: SubstrateAccountId>): TypedSubstrateAddress; getPlaceholder(): TypedSubstrateAddress; } export interface SCALEAddressFactory { from(value: string | PublicKey | Uint8Array | Buffer | TypedSubstrateAddress, configuration: C): TypedSCALEAddress; decode(configuration: C, runtimeVersion: number | undefined, hex: string): SCALEDecodeResult>; } export declare type TypedSubstrateAddress = SubstrateAddressType[C['account']['type']]; interface SubstrateAddressType extends Record { ss58: SubstrateSS58Address; eth: SubstrateEthAddress; } export declare type TypedSCALEAddress = SCALEAddressRecord[C['account']['type']]; interface SCALEAddressRecord extends Record { ss58: SCALEMultiAddress; eth: SCALEAccountId; } export declare function substrateAddressFactory(configuration: C): SubstrateAddressFactory; export declare function scaleAddressFactory(configuration: C): SCALEAddressFactory; export {};