import { type AccountWallet, AztecAddress, type AztecNode, type CompleteAddress, Fr, type Logger, type PXE, type TxHash } from '@aztec/aztec.js';
import type { CheatCodes } from '@aztec/aztec/testing';
import { TokenBlacklistContract } from '@aztec/noir-contracts.js/TokenBlacklist';
import { InvalidAccountContract } from '@aztec/noir-test-contracts.js/InvalidAccount';
import type { SequencerClient } from '@aztec/sequencer-client';
import { type SubsystemsContext } from '../fixtures/snapshot_manager.js';
import { TokenSimulator } from '../simulators/token_simulator.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;
    private snapshotManager;
    logger: Logger;
    wallets: AccountWallet[];
    pxe: PXE;
    accounts: CompleteAddress[];
    asset: TokenBlacklistContract;
    tokenSim: TokenSimulator;
    badAccount: InvalidAccountContract;
    cheatCodes: CheatCodes;
    sequencer: SequencerClient;
    aztecNode: AztecNode;
    admin: AccountWallet;
    adminAddress: AztecAddress;
    other: AccountWallet;
    otherAddress: AztecAddress;
    blacklisted: AccountWallet;
    blacklistedAddress: AztecAddress;
    constructor(testName: string);
    crossTimestampOfChange(): Promise<void>;
    /**
     * 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>;
    addPendingShieldNoteToPXE(contract: TokenBlacklistContract, recipient: AztecAddress, amount: bigint, secretHash: Fr, txHash: TxHash): Promise<void>;
    applyMintSnapshot(): Promise<void>;
}
//# sourceMappingURL=blacklist_token_contract_test.d.ts.map