import { NetworkNames } from '../../network';
import { UniqueSubject } from '../../common';
import { WalletProvider } from './interfaces';
import { TypedDataField } from 'ethers';
export declare abstract class DynamicWalletProvider implements WalletProvider {
    readonly type: string;
    readonly address$: UniqueSubject<string>;
    readonly networkName$: UniqueSubject<NetworkNames>;
    protected constructor(type: string);
    get address(): string;
    get networkName(): NetworkNames;
    abstract signMessage(message: any): Promise<string>;
    abstract signTypedData(typedData: TypedDataField[], message: any, accountAddress: string): Promise<string>;
    protected setAddress(address: string): void;
    protected setNetworkName(networkNameOrChainId: string | number): void;
}
