///
import { SCALEDecodeResult } from '../common/data/scale/SCALEDecoder';
import { SubstrateSignature, SubstrateSignatureType } from '../common/data/transaction/SubstrateSignature';
import { MoonbeamSignature } from '../moonbeam/data/transaction/MoonbeamSignature';
import { SubstrateNetwork } from '../SubstrateNetwork';
export interface SubstrateSignatureFactory {
create(type: SubstrateSignatureType, signature?: string | Uint8Array | Buffer): SubstrateCompatSignatureType[Network];
decode(network: Network, runtimeVersion: number | undefined, raw: string): SCALEDecodeResult;
}
export interface SubstrateCompatSignatureType extends Record {
[SubstrateNetwork.POLKADOT]: SubstrateSignature;
[SubstrateNetwork.KUSAMA]: SubstrateSignature;
[SubstrateNetwork.MOONBEAM]: MoonbeamSignature;
}
export declare function substrateSignatureFactory(substrateNetwork: Network): SubstrateSignatureFactory;