import { AztecAddress } from '@aztec/aztec.js/addresses';
import { Fr } from '@aztec/aztec.js/fields';
import { type Logger } from '@aztec/aztec.js/log';
import type { AztecNode } from '@aztec/aztec.js/node';
import type { TxHash } from '@aztec/aztec.js/tx';
import type { CheatCodes } from '@aztec/aztec/testing';
import { TokenBlacklistContract } from '@aztec/noir-contracts.js/TokenBlacklist';
import { GenericProxyContract } from '@aztec/noir-test-contracts.js/GenericProxy';
import { InvalidAccountContract } from '@aztec/noir-test-contracts.js/InvalidAccount';
import type { SequencerClient } from '@aztec/sequencer-client';
import type { AztecNodeDebug } from '@aztec/stdlib/interfaces/client';
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 Role {
    private isAdmin;
    private isMinter;
    private isBlacklisted;
    withAdmin(): this;
    withMinter(): this;
    withBlacklisted(): this;
    toNoirStruct(): {
        is_admin: boolean;
        is_minter: boolean;
        is_blacklisted: boolean;
    };
}
export declare class BlacklistTokenContractTest {
    static CHANGE_ROLES_DELAY: number;
    context: EndToEndContext;
    logger: Logger;
    wallet: TestWallet;
    asset: TokenBlacklistContract;
    tokenSim: TokenSimulator;
    badAccount: InvalidAccountContract;
    authwitProxy: GenericProxyContract;
    cheatCodes: CheatCodes;
    sequencer: SequencerClient;
    aztecNode: AztecNode & AztecNodeDebug;
    adminAddress: AztecAddress;
    otherAddress: AztecAddress;
    blacklistedAddress: AztecAddress;
    constructor(testName: string);
    crossTimestampOfChange(): Promise<void>;
    /**
     * Applies base setup:
     * 1. Add 3 accounts.
     * 2. Publicly deploy accounts, deploy token contract and a "bad account".
     */
    applyBaseSetup(): Promise<void>;
    setup(): Promise<void>;
    teardown(): Promise<void>;
    addPendingShieldNoteToPXE(contract: TokenBlacklistContract, recipient: AztecAddress, amount: bigint, secretHash: Fr, txHash: TxHash): Promise<void>;
    applyMint(): Promise<void>;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxhY2tsaXN0X3Rva2VuX2NvbnRyYWN0X3Rlc3QuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lMmVfYmxhY2tsaXN0X3Rva2VuX2NvbnRyYWN0L2JsYWNrbGlzdF90b2tlbl9jb250cmFjdF90ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUV6RCxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDNUMsT0FBTyxFQUFFLEtBQUssTUFBTSxFQUFnQixNQUFNLHFCQUFxQixDQUFDO0FBQ2hFLE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3RELE9BQU8sS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2pELE9BQU8sS0FBSyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRXZELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQ3RGLE9BQU8sS0FBSyxFQUFFLGVBQWUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQy9ELE9BQU8sS0FBSyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBSXRFLE9BQU8sRUFBRSxLQUFLLGVBQWUsRUFBeUQsTUFBTSxzQkFBc0IsQ0FBQztBQUNuSCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDbEUsT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFFaEUscUJBQWEsSUFBSTtJQUNmLE9BQU8sQ0FBQyxPQUFPLENBQVM7SUFDeEIsT0FBTyxDQUFDLFFBQVEsQ0FBUztJQUN6QixPQUFPLENBQUMsYUFBYSxDQUFTO0lBRTlCLFNBQVMsU0FHUjtJQUVELFVBQVUsU0FHVDtJQUVELGVBQWUsU0FHZDtJQUVELFlBQVk7Ozs7TUFJWDtDQUNGO0FBRUQscUJBQWEsMEJBQTBCO0lBRXJDLE1BQU0sQ0FBQyxrQkFBa0IsU0FBUztJQUVsQyxPQUFPLEVBQUcsZUFBZSxDQUFDO0lBQzFCLE1BQU0sRUFBRSxNQUFNLENBQUM7SUFDZixNQUFNLEVBQUcsVUFBVSxDQUFDO0lBQ3BCLEtBQUssRUFBRyxzQkFBc0IsQ0FBQztJQUMvQixRQUFRLEVBQUcsY0FBYyxDQUFDO0lBQzFCLFVBQVUsRUFBRyxzQkFBc0IsQ0FBQztJQUNwQyxZQUFZLEVBQUcsb0JBQW9CLENBQUM7SUFDcEMsVUFBVSxFQUFHLFVBQVUsQ0FBQztJQUN4QixTQUFTLEVBQUcsZUFBZSxDQUFDO0lBQzVCLFNBQVMsRUFBRyxTQUFTLEdBQUcsY0FBYyxDQUFDO0lBRXZDLFlBQVksRUFBRyxZQUFZLENBQUM7SUFDNUIsWUFBWSxFQUFHLFlBQVksQ0FBQztJQUM1QixrQkFBa0IsRUFBRyxZQUFZLENBQUM7SUFFbEMsWUFBWSxRQUFRLEVBQUUsTUFBTSxFQUUzQjtJQUVLLHNCQUFzQixrQkFFM0I7SUFFRDs7OztPQUlHO0lBQ0csY0FBYyxrQkE0RG5CO0lBRUssS0FBSyxrQkFPVjtJQUVLLFFBQVEsa0JBRWI7SUFFSyx5QkFBeUIsQ0FDN0IsUUFBUSxFQUFFLHNCQUFzQixFQUNoQyxTQUFTLEVBQUUsWUFBWSxFQUN2QixNQUFNLEVBQUUsTUFBTSxFQUNkLFVBQVUsRUFBRSxFQUFFLEVBQ2QsTUFBTSxFQUFFLE1BQU0saUJBY2Y7SUFFSyxTQUFTLGtCQW1EZDtDQUNGIn0=