import { type AccountWallet, AztecAddress, type Logger, type PXE } from '@aztec/aztec.js';
import { ChildContract } from '@aztec/noir-test-contracts.js/Child';
import { ParentContract } from '@aztec/noir-test-contracts.js/Parent';
import { type SubsystemsContext } from '../fixtures/snapshot_manager.js';
export declare class NestedContractTest {
    private numberOfAccounts;
    private snapshotManager;
    logger: Logger;
    wallet: AccountWallet;
    defaultAccountAddress: AztecAddress;
    pxe: PXE;
    parentContract: ParentContract;
    childContract: ChildContract;
    constructor(testName: string, numberOfAccounts?: number);
    /**
     * Adds two state shifts to snapshot manager.
     * 1. Add 3 accounts.
     * 2. Publicly deploy accounts
     */
    applyBaseSnapshots(): Promise<void>;
    setup(): Promise<void>;
    teardown(): Promise<void>;
    snapshot: <T>(name: string, apply: (context: SubsystemsContext) => Promise<T>, restore?: (snapshotData: T, context: SubsystemsContext) => Promise<void>) => Promise<void>;
    applyManualSnapshots(): Promise<void>;
}
//# sourceMappingURL=nested_contract_test.d.ts.map