import { AztecAddress, Fr, GrumpkinPrivateKey, PartialAddress } from '@aztec/circuits.js';
import { AuthWitness, ContractData, DeployedContract, ExtendedContractData, ExtendedNote, FunctionCall, GetUnencryptedLogsResponse, L2Block, L2Tx, LogFilter, NodeInfo, NoteFilter, PXE, SyncStatus, Tx, TxExecutionRequest, TxHash, TxReceipt } from '@aztec/types';
import { CompleteAddress } from '../index.js';
import { Wallet } from './index.js';
/**
 * A base class for Wallet implementations
 */
export declare abstract class BaseWallet implements Wallet {
    protected readonly pxe: PXE;
    constructor(pxe: PXE);
    abstract getCompleteAddress(): CompleteAddress;
    abstract createTxExecutionRequest(execs: FunctionCall[]): Promise<TxExecutionRequest>;
    abstract createAuthWitness(message: Fr): Promise<AuthWitness>;
    registerAccount(privKey: GrumpkinPrivateKey, partialAddress: PartialAddress): Promise<CompleteAddress>;
    registerRecipient(account: CompleteAddress): Promise<void>;
    getRegisteredAccounts(): Promise<CompleteAddress[]>;
    getRegisteredAccount(address: AztecAddress): Promise<CompleteAddress | undefined>;
    getRecipients(): Promise<CompleteAddress[]>;
    getRecipient(address: AztecAddress): Promise<CompleteAddress | undefined>;
    addContracts(contracts: DeployedContract[]): Promise<void>;
    getContracts(): Promise<AztecAddress[]>;
    simulateTx(txRequest: TxExecutionRequest, simulatePublic: boolean): Promise<Tx>;
    sendTx(tx: Tx): Promise<TxHash>;
    getTx(txHash: TxHash): Promise<L2Tx | undefined>;
    getTxReceipt(txHash: TxHash): Promise<TxReceipt>;
    getNotes(filter: NoteFilter): Promise<ExtendedNote[]>;
    getPublicStorageAt(contract: AztecAddress, storageSlot: Fr): Promise<any>;
    addNote(note: ExtendedNote): Promise<void>;
    getBlock(number: number): Promise<L2Block | undefined>;
    viewTx(functionName: string, args: any[], to: AztecAddress, from?: AztecAddress | undefined): Promise<any>;
    getExtendedContractData(contractAddress: AztecAddress): Promise<ExtendedContractData | undefined>;
    getContractData(contractAddress: AztecAddress): Promise<ContractData | undefined>;
    getUnencryptedLogs(filter: LogFilter): Promise<GetUnencryptedLogsResponse>;
    getBlockNumber(): Promise<number>;
    getNodeInfo(): Promise<NodeInfo>;
    isGlobalStateSynchronized(): Promise<boolean>;
    isAccountStateSynchronized(account: AztecAddress): Promise<boolean>;
    getSyncStatus(): Promise<SyncStatus>;
    addAuthWitness(authWitness: AuthWitness): Promise<void>;
}
//# sourceMappingURL=base_wallet.d.ts.map