import { NetworkNames } from '../../network';
import { UniqueSubject } from '../../common';
import { MessagePayload, WalletProvider } from './interfaces';
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: MessagePayload, message: any, factoryAddress?: string, initCode?: string): Promise<string>;
    protected setAddress(address: string): void;
    protected setNetworkName(networkNameOrChainId: string | number): void;
}
