import type { BaseProvider } from '@metamask/providers';
import AccountBase from './Base.js';
import { Encoded } from '../utils/encoder.js';
export declare const snapId = "npm:@aeternity-snap/plugin";
export declare function invokeSnap<R>(provider: BaseProvider, method: string, params: unknown, key: string): Promise<R>;
/**
 * Account connected to Aeternity Snap for MetaMask
 * https://www.npmjs.com/package/\@aeternity-snap/plugin
 * @category account
 */
export default class AccountMetamask extends AccountBase {
    /**
     * @deprecated this class is not intended to provide raw access to the provider
     */
    readonly provider: BaseProvider;
    readonly index: number;
    readonly address: Encoded.AccountAddress;
    /**
     * @param address - Address of account
     */
    constructor(provider: BaseProvider, index: number, address: Encoded.AccountAddress);
    /**
     * @deprecated Use `unsafeSign` method instead
     */
    sign(): Promise<Uint8Array>;
    unsafeSign(): Promise<Uint8Array>;
    signTypedData(): Promise<Encoded.Signature>;
    signDelegation(): Promise<Encoded.Signature>;
    signTransaction(tx: Encoded.Transaction, { innerTx, networkId }?: {
        innerTx?: boolean;
        networkId?: string;
    }): Promise<Encoded.Transaction>;
    signMessage(message: string): Promise<Uint8Array>;
}
