import { AztecAddress } from '@aztec/aztec.js/addresses';
import { type Logger } from '@aztec/aztec.js/log';
import type { AztecNode } from '@aztec/aztec.js/node';
import { TokenContract } from '@aztec/noir-contracts.js/Token';
import { GenericProxyContract } from '@aztec/noir-test-contracts.js/GenericProxy';
import { InvalidAccountContract } from '@aztec/noir-test-contracts.js/InvalidAccount';
import { type EndToEndContext } from '../fixtures/setup.js';
import { TokenSimulator } from '../simulators/token_simulator.js';
import type { TestWallet } from '../test-wallet/test_wallet.js';
export declare class TokenContractTest {
    static TOKEN_NAME: string;
    static TOKEN_SYMBOL: string;
    static TOKEN_DECIMALS: bigint;
    context: EndToEndContext;
    logger: Logger;
    metricsPort?: number;
    asset: TokenContract;
    tokenSim: TokenSimulator;
    node: AztecNode;
    badAccount: InvalidAccountContract;
    authwitProxy: GenericProxyContract;
    wallet: TestWallet;
    adminAddress: AztecAddress;
    account1Address: AztecAddress;
    account2Address: AztecAddress;
    private shouldApplyBaseSetup;
    private shouldApplyMint;
    constructor(testName: string);
    /**
     * Registers that base setup should be applied during setup().
     * Call this before setup() to deploy 3 accounts, publicly deploy accounts, token contract and a "bad account".
     */
    applyBaseSnapshots(): void;
    /**
     * Registers that mint should be applied during setup().
     * Call this before setup() to mint tokens to the admin account.
     */
    applyMintSnapshot(): void;
    private applyBaseSetup;
    setup(): Promise<void>;
    teardown(): Promise<void>;
    private applyMint;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9rZW5fY29udHJhY3RfdGVzdC5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2UyZV90b2tlbl9jb250cmFjdC90b2tlbl9jb250cmFjdF90ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsS0FBSyxNQUFNLEVBQWdCLE1BQU0scUJBQXFCLENBQUM7QUFDaEUsT0FBTyxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQy9ELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBSXRGLE9BQU8sRUFBRSxLQUFLLGVBQWUsRUFBeUQsTUFBTSxzQkFBc0IsQ0FBQztBQUVuSCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDbEUsT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFJaEUscUJBQWEsaUJBQWlCO0lBQzVCLE1BQU0sQ0FBQyxVQUFVLFNBQVU7SUFDM0IsTUFBTSxDQUFDLFlBQVksU0FBUztJQUM1QixNQUFNLENBQUMsY0FBYyxTQUFPO0lBQzVCLE9BQU8sRUFBRyxlQUFlLENBQUM7SUFDMUIsTUFBTSxFQUFFLE1BQU0sQ0FBQztJQUNmLFdBQVcsQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUNyQixLQUFLLEVBQUcsYUFBYSxDQUFDO0lBQ3RCLFFBQVEsRUFBRyxjQUFjLENBQUM7SUFDMUIsSUFBSSxFQUFHLFNBQVMsQ0FBQztJQUVqQixVQUFVLEVBQUcsc0JBQXNCLENBQUM7SUFDcEMsWUFBWSxFQUFHLG9CQUFvQixDQUFDO0lBQ3BDLE1BQU0sRUFBRyxVQUFVLENBQUM7SUFDcEIsWUFBWSxFQUFHLFlBQVksQ0FBQztJQUM1QixlQUFlLEVBQUcsWUFBWSxDQUFDO0lBQy9CLGVBQWUsRUFBRyxZQUFZLENBQUM7SUFFL0IsT0FBTyxDQUFDLG9CQUFvQixDQUFTO0lBQ3JDLE9BQU8sQ0FBQyxlQUFlLENBQVM7SUFFaEMsWUFBWSxRQUFRLEVBQUUsTUFBTSxFQUczQjtJQUVEOzs7T0FHRztJQUNILGtCQUFrQixTQUVqQjtJQUVEOzs7T0FHRztJQUNILGlCQUFpQixTQUVoQjtZQUthLGNBQWM7SUF3RHRCLEtBQUssa0JBY1Y7SUFFSyxRQUFRLGtCQUViO1lBRWEsU0FBUztDQStCeEIifQ==