import { UserID, UserIDRaw } from '@streamr/utils';
import { JsonRpcApiProvider } from 'ethers';
import { Identity, SignerWithProvider } from './Identity';
import { SignatureType } from '@streamr/trackerless-network';
/**
 * An identity that uses an Ethereum provider (= external wallet) to sign messages
 */
export declare class EthereumProviderIdentity extends Identity {
    private provider;
    private expectedChainId;
    private signer;
    private cachedUserIdString;
    private cachedUserIdBytes;
    private rateLimitedSigner;
    constructor(provider: JsonRpcApiProvider, expectedChainId: number | undefined);
    getUserIdRaw(): Promise<UserIDRaw>;
    getUserId(): Promise<UserID>;
    getSignatureType(): SignatureType;
    createMessageSignature(payload: Uint8Array): Promise<Uint8Array>;
    getTransactionSigner(): Promise<SignerWithProvider>;
}
