import { ethers } from 'ethers';
import { Provider } from '@ethersproject/providers';
import { BaseTransactionWrapper } from './base-transaction-wrapper';
import { TransactionOptions } from '../types';
/**
 * Wrapper for ERC6551Registry contract, used to create and manage Token Bound Accounts (TBA)
 */
export declare class ERC6551RegistryWrapper extends BaseTransactionWrapper {
    private _registry;
    /**
     * Create ERC6551Registry wrapper instance
     * @param provider Provider instance
     * @param signer Signer instance
     */
    constructor(provider: Provider, signer: ethers.Signer);
    /**
     * Get ERC6551Registry contract instance
     * @returns ERC6551Registry contract instance
     */
    private getRegistry;
    /**
     * Calculate TBA account address
     * @param implementation Account implementation contract address
     * @param salt Salt
     * @param chainId Chain ID
     * @param tokenContract Token contract address
     * @param tokenId Token ID
     * @returns Account address
     */
    account(implementation: string, salt: string | ethers.BigNumber, chainId: number, tokenContract: string, tokenId: number | string): Promise<string>;
    /**
     * Create TBA account
     * @param params Account creation parameters
     * @param options Transaction options
     * @returns Created account address and transaction
     */
    createAccount(params: {
        implementation: string;
        salt: string | ethers.BigNumber;
        chainId: number;
        tokenContract: string;
        tokenId: number | string;
    }, options?: TransactionOptions): Promise<{
        accountAddress: string;
        tx: ethers.ContractTransaction;
    }>;
    /**
     * Update connection information (when network changes)
     * @param provider New Provider
     * @param signer New Signer
     */
    updateConnection(provider: Provider, signer: ethers.Signer): void;
}
//# sourceMappingURL=erc6551-registry-wrapper.d.ts.map