import type { AztecNodeConfig } from '@aztec/aztec-node';
import { type AccountWallet, AztecAddress, type AztecNode, type CompleteAddress, EthAddress, type Logger, type PXE } from '@aztec/aztec.js';
import { CheatCodes } from '@aztec/aztec/testing';
import { type DeployL1ContractsReturnType, type ExtendedViemWalletClient } from '@aztec/ethereum';
import { TokenContract } from '@aztec/noir-contracts.js/Token';
import { TokenBridgeContract } from '@aztec/noir-contracts.js/TokenBridge';
import type { AztecNodeAdmin } from '@aztec/stdlib/interfaces/client';
import { type SubsystemsContext } from '../fixtures/snapshot_manager.js';
import { CrossChainTestHarness } from '../shared/cross_chain_test_harness.js';
export declare class CrossChainMessagingTest {
    private snapshotManager;
    logger: Logger;
    accounts: CompleteAddress[];
    aztecNode: AztecNode;
    pxe: PXE;
    aztecNodeConfig: AztecNodeConfig;
    aztecNodeAdmin: AztecNodeAdmin;
    l1Client: ExtendedViemWalletClient | undefined;
    user1Wallet: AccountWallet;
    user1Address: AztecAddress;
    user2Wallet: AccountWallet;
    user2Address: AztecAddress;
    crossChainTestHarness: CrossChainTestHarness;
    ethAccount: EthAddress;
    ownerAddress: AztecAddress;
    l2Token: TokenContract;
    l2Bridge: TokenBridgeContract;
    inbox: any;
    outbox: any;
    cheatCodes: CheatCodes;
    deployL1ContractsValues: DeployL1ContractsReturnType;
    constructor(testName: string);
    assumeProven(): 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>;
    applyBaseSnapshots(): Promise<void>;
}
//# sourceMappingURL=cross_chain_messaging_test.d.ts.map