import { type AccountWallet, type AztecAddress, type AztecNode, type ContractArtifact, type ContractBase, Fr, type Logger, type PXE, type PublicKeys, type Wallet } from '@aztec/aztec.js';
import type { StatefulTestContract } from '@aztec/noir-test-contracts.js/StatefulTest';
import type { AztecNodeAdmin } from '@aztec/stdlib/interfaces/client';
export declare class DeployTest {
    private snapshotManager;
    logger: Logger;
    pxe: PXE;
    wallet: AccountWallet;
    defaultAccountAddress: AztecAddress;
    aztecNode: AztecNode;
    aztecNodeAdmin: AztecNodeAdmin;
    constructor(testName: string);
    setup(): Promise<this>;
    teardown(): Promise<void>;
    private applyInitialAccountSnapshot;
    registerContract<T extends ContractBase>(wallet: Wallet, contractArtifact: ContractArtifactClass<T>, opts?: {
        salt?: Fr;
        publicKeys?: PublicKeys;
        initArgs?: any[];
        constructorName?: string;
        deployer?: AztecAddress;
    }): Promise<T>;
    registerRandomAccount(): Promise<AztecAddress>;
}
export type StatefulContractCtorArgs = Parameters<StatefulTestContract['methods']['constructor']>;
export type ContractArtifactClass<T extends ContractBase> = {
    at(address: AztecAddress, wallet: Wallet): Promise<T>;
    artifact: ContractArtifact;
};
//# sourceMappingURL=deploy_test.d.ts.map