import { type AztecAddress, type Logger, type Wallet } from '@aztec/aztec.js';
import type { TokenContract } from '@aztec/noir-contracts.js/Token';
export declare class TokenSimulator {
    protected token: TokenContract;
    protected defaultWallet: Wallet;
    protected defaultAddress: AztecAddress;
    protected logger: Logger;
    protected accounts: AztecAddress[];
    private balancesPrivate;
    private balancePublic;
    totalSupply: bigint;
    private lookupProvider;
    constructor(token: TokenContract, defaultWallet: Wallet, defaultAddress: AztecAddress, logger: Logger, accounts: AztecAddress[]);
    addAccount(account: AztecAddress): void;
    setLookupProvider(account: AztecAddress, wallet: Wallet): void;
    mintPrivate(to: AztecAddress, amount: bigint): void;
    mintPublic(to: AztecAddress, amount: bigint): void;
    transferPublic(from: AztecAddress, to: AztecAddress, amount: bigint): void;
    transferPrivate(from: AztecAddress, to: AztecAddress, amount: bigint): void;
    transferToPrivate(from: AztecAddress, to: AztecAddress, amount: bigint): void;
    transferToPublic(from: AztecAddress, to: AztecAddress, amount: bigint): void;
    burnPrivate(from: AztecAddress, amount: bigint): void;
    burnPublic(from: AztecAddress, amount: bigint): void;
    balanceOfPublic(address: AztecAddress): bigint;
    balanceOfPrivate(address: AztecAddress): bigint;
    checkPublic(): Promise<void>;
    checkPrivate(): Promise<void>;
    check(): Promise<void>;
}
//# sourceMappingURL=token_simulator.d.ts.map