///
import BigNumber from '@airgap/coinlib-core/dependencies/src/bignumber.js-9.0.0/bignumber';
import { SubstrateProtocolConfiguration } from '../../../types/configuration';
import { TypedSubstrateAddress } from '../../account/address/SubstrateAddressFactory';
import { SCALEDecodeResult } from '../SCALEDecoder';
import { SCALEAccountId } from './SCALEAccountId';
import { SCALEBytes } from './SCALEBytes';
import { SCALEHash } from './SCALEHash';
import { SCALEInt } from './SCALEInt';
import { SCALEEncodeConfig, SCALEType } from './SCALEType';
export declare enum SCALEMultiAddressType {
Id = 0,
Index = 1,
Raw = 2,
Address32 = 3,
Address20 = 4
}
declare type SCALEMultiAddressValue = T extends SCALEMultiAddressType.Id ? SCALEAccountId : T extends SCALEMultiAddressType.Index ? SCALEInt : T extends SCALEMultiAddressType.Raw ? SCALEBytes : T extends SCALEMultiAddressType.Address32 ? SCALEHash : T extends SCALEMultiAddressType.Address20 ? SCALEHash : never;
export declare class SCALEMultiAddress extends SCALEType {
readonly type: T;
readonly value: SCALEMultiAddressValue;
static isOfType(multiAddress: SCALEMultiAddress, type: T): multiAddress is SCALEMultiAddress;
static from(value: number | string | BigNumber, type: SCALEMultiAddressType.Index, configuration: C): SCALEMultiAddress;
static from, C extends SubstrateProtocolConfiguration>(value: string | Uint8Array | Buffer | TypedSubstrateAddress, type: T, configuration: C): SCALEMultiAddress;
static decode(configuration: C, hex: string, type?: T, runtimeVersion?: number): SCALEDecodeResult>;
private constructor();
toString(): string;
asAddress(): string;
asBytes(): Buffer;
protected _encode(config?: SCALEEncodeConfig): string;
}
export {};