/// <reference types="node" resolution-mode="require"/>
/// <reference types="node" resolution-mode="require"/>
import { type AuthWitness, type EventMetadataDefinition, type ExtendedNote, type GetUnencryptedLogsResponse, type IncomingNotesFilter, type L2Block, type LogFilter, type OutgoingNotesFilter, type PXE, type PXEInfo, type PrivateExecutionResult, type SiblingPath, type SyncStatus, type Tx, type TxExecutionRequest, type TxHash, type TxProvingResult, type TxReceipt, type TxSimulationResult, type UniqueNote } from '@aztec/circuit-types';
import { type AztecAddress, type CompleteAddress, type ContractClassWithId, type ContractInstanceWithAddress, type Fr, type L1_TO_L2_MSG_TREE_HEIGHT, type NodeInfo, type PartialAddress, type Point } from '@aztec/circuits.js';
import type { AbiDecoded, ContractArtifact } from '@aztec/foundation/abi';
import { type Wallet } from '../account/wallet.js';
import { type ExecutionRequestInit } from '../entrypoint/entrypoint.js';
import { type IntentAction, type IntentInnerHash } from '../utils/authwit.js';
/**
 * A base class for Wallet implementations
 */
export declare abstract class BaseWallet implements Wallet {
    protected readonly pxe: PXE;
    private scopes?;
    constructor(pxe: PXE, scopes?: AztecAddress[] | undefined);
    abstract getCompleteAddress(): CompleteAddress;
    abstract getChainId(): Fr;
    abstract getVersion(): Fr;
    abstract createTxExecutionRequest(exec: ExecutionRequestInit): Promise<TxExecutionRequest>;
    abstract createAuthWit(intent: Fr | Buffer | IntentInnerHash | IntentAction): Promise<AuthWitness>;
    setScopes(scopes: AztecAddress[]): void;
    getScopes(): AztecAddress[] | undefined;
    getAddress(): AztecAddress;
    getContractInstance(address: AztecAddress): Promise<ContractInstanceWithAddress | undefined>;
    getContractClass(id: Fr): Promise<ContractClassWithId | undefined>;
    getContractArtifact(id: Fr): Promise<ContractArtifact | undefined>;
    addCapsule(capsule: Fr[]): Promise<void>;
    registerAccount(secretKey: Fr, partialAddress: PartialAddress): Promise<CompleteAddress>;
    getRegisteredAccounts(): Promise<CompleteAddress[]>;
    getRegisteredAccount(address: AztecAddress): Promise<CompleteAddress | undefined>;
    registerContact(address: AztecAddress): Promise<AztecAddress>;
    getContacts(): Promise<AztecAddress[]>;
    removeContact(address: AztecAddress): Promise<void>;
    registerContract(contract: {
        /** Instance */ instance: ContractInstanceWithAddress;
        /** Associated artifact */ artifact?: ContractArtifact;
    }): Promise<void>;
    registerContractClass(artifact: ContractArtifact): Promise<void>;
    getContracts(): Promise<AztecAddress[]>;
    proveTx(txRequest: TxExecutionRequest, privateExecutionResult: PrivateExecutionResult): Promise<TxProvingResult>;
    simulateTx(txRequest: TxExecutionRequest, simulatePublic: boolean, msgSender?: AztecAddress, skipTxValidation?: boolean, profile?: boolean): Promise<TxSimulationResult>;
    sendTx(tx: Tx): Promise<TxHash>;
    getTxEffect(txHash: TxHash): Promise<import("@aztec/circuit-types").InBlock<import("@aztec/circuit-types").TxEffect> | undefined>;
    getTxReceipt(txHash: TxHash): Promise<TxReceipt>;
    getIncomingNotes(filter: IncomingNotesFilter): Promise<UniqueNote[]>;
    getOutgoingNotes(filter: OutgoingNotesFilter): Promise<UniqueNote[]>;
    getPublicStorageAt(contract: AztecAddress, storageSlot: Fr): Promise<any>;
    addNote(note: ExtendedNote): Promise<void>;
    addNullifiedNote(note: ExtendedNote): Promise<void>;
    getBlock(number: number): Promise<L2Block | undefined>;
    simulateUnconstrained(functionName: string, args: any[], to: AztecAddress, from?: AztecAddress | undefined): Promise<AbiDecoded>;
    getUnencryptedLogs(filter: LogFilter): Promise<GetUnencryptedLogsResponse>;
    getContractClassLogs(filter: LogFilter): Promise<GetUnencryptedLogsResponse>;
    getBlockNumber(): Promise<number>;
    getProvenBlockNumber(): Promise<number>;
    getNodeInfo(): Promise<NodeInfo>;
    isGlobalStateSynchronized(): Promise<boolean>;
    getSyncStatus(): Promise<SyncStatus>;
    addAuthWitness(authWitness: AuthWitness): Promise<void>;
    getAuthWitness(messageHash: Fr): Promise<Fr[] | undefined>;
    isContractClassPubliclyRegistered(id: Fr): Promise<boolean>;
    isContractPubliclyDeployed(address: AztecAddress): Promise<boolean>;
    isContractInitialized(address: AztecAddress): Promise<boolean>;
    getPXEInfo(): Promise<PXEInfo>;
    getEncryptedEvents<T>(event: EventMetadataDefinition, from: number, limit: number, vpks?: Point[]): Promise<T[]>;
    getUnencryptedEvents<T>(event: EventMetadataDefinition, from: number, limit: number): Promise<T[]>;
    getL1ToL2MembershipWitness(contractAddress: AztecAddress, messageHash: Fr, secret: Fr): Promise<[bigint, SiblingPath<typeof L1_TO_L2_MSG_TREE_HEIGHT>]>;
}
//# sourceMappingURL=base_wallet.d.ts.map