import { UserID, UserIDRaw } from '@streamr/utils';
import { RpcProviderSource } from '../RpcProviderSource';
import { Identity, SignerWithProvider } from './Identity';
import { KeyPairIdentityConfig, StrictStreamrClientConfig } from '../Config';
export declare abstract class KeyPairIdentity extends Identity {
    readonly publicKeyString: UserID;
    readonly publicKey: UserIDRaw;
    readonly privateKey: Uint8Array;
    constructor(publicKey: Uint8Array, privateKey: Uint8Array);
    /**
     * Should throw if the publicKey and privateKey don't match each other
     */
    abstract assertKeyPairIsValid(): void;
    getUserIdRaw(): Promise<UserIDRaw>;
    getUserId(): Promise<UserID>;
    getPrivateKey(): Promise<Uint8Array>;
    abstract getExpectedPublicKeyLength(): number;
    abstract getExpectedPrivateKeyLength(): number;
    getTransactionSigner(_rpcProviderSource: RpcProviderSource): Promise<SignerWithProvider>;
    static getKeyPairFromConfig(config: Pick<StrictStreamrClientConfig, 'auth'>): KeyPairIdentityConfig;
}
