import { type AccountWallet, AztecAddress, type AztecNode, type Logger } from '@aztec/aztec.js';
import { TokenContract } from '@aztec/noir-contracts.js/Token';
import { InvalidAccountContract } from '@aztec/noir-test-contracts.js/InvalidAccount';
import { type SubsystemsContext } from '../fixtures/snapshot_manager.js';
import { TokenSimulator } from '../simulators/token_simulator.js';
export declare class TokenContractTest {
    static TOKEN_NAME: string;
    static TOKEN_SYMBOL: string;
    static TOKEN_DECIMALS: bigint;
    private snapshotManager;
    logger: Logger;
    asset: TokenContract;
    tokenSim: TokenSimulator;
    node: AztecNode;
    badAccount: InvalidAccountContract;
    admin: AccountWallet;
    adminAddress: AztecAddress;
    account1: AccountWallet;
    account1Address: AztecAddress;
    account2: AccountWallet;
    account2Address: AztecAddress;
    constructor(testName: string);
    /**
     * Adds two state shifts to snapshot manager.
     * 1. Add 3 accounts.
     * 2. Publicly deploy accounts, deploy token contract and a "bad account".
     */
    applyBaseSnapshots(): Promise<void>;
    setup(): Promise<void>;
    snapshot: <T>(name: string, apply: (context: SubsystemsContext) => Promise<T>, restore?: (snapshotData: T, context: SubsystemsContext) => Promise<void>) => Promise<void>;
    teardown(): Promise<void>;
    applyMintSnapshot(): Promise<void>;
}
//# sourceMappingURL=token_contract_test.d.ts.map