import type { InitialAccountData } from '@aztec/accounts/testing';
import type { AztecNodeService } from '@aztec/aztec-node';
import { AztecAddress, type Logger, ProvenTx, type SentTx } from '@aztec/aztec.js';
import type { RollupCheatCodes } from '@aztec/aztec/testing';
import type { EmpireSlashingProposerContract, RollupContract, TallySlashingProposerContract } from '@aztec/ethereum';
import type { TestDateProvider } from '@aztec/foundation/timer';
import type { SpamContract } from '@aztec/noir-test-contracts.js/Spam';
import { PXEService } from '@aztec/pxe/server';
import type { AztecNodeAdmin } from '@aztec/stdlib/interfaces/client';
import type { SlashFactoryContract } from '@aztec/stdlib/l1-contracts';
import type { NodeContext } from '../fixtures/setup_p2p_test.js';
export declare const submitComplexTxsTo: (logger: Logger, from: AztecAddress, spamContract: SpamContract, numTxs: number, opts?: {
    callPublic?: boolean;
}) => Promise<SentTx[]>;
export declare const createPXEServiceAndSubmitTransactions: (logger: Logger, node: AztecNodeService, numTxs: number, fundedAccount: InitialAccountData) => Promise<NodeContext>;
export declare function createPXEServiceAndPrepareTransactions(logger: Logger, node: AztecNodeService, numTxs: number, fundedAccount: InitialAccountData): Promise<{
    pxeService: PXEService;
    txs: ProvenTx[];
    node: AztecNodeService;
}>;
export declare function awaitProposalExecution(slashingProposer: EmpireSlashingProposerContract | TallySlashingProposerContract, timeoutSeconds: number, logger: Logger): Promise<bigint>;
export declare function awaitCommitteeExists({ rollup, logger, }: {
    rollup: RollupContract;
    logger: Logger;
}): Promise<readonly `0x${string}`[]>;
export declare function awaitOffenseDetected({ logger, nodeAdmin, slashingRoundSize, epochDuration, waitUntilOffenseCount, }: {
    nodeAdmin: AztecNodeAdmin;
    logger: Logger;
    slashingRoundSize: number;
    epochDuration: number;
    waitUntilOffenseCount?: number;
}): Promise<import("@aztec/slasher").Offense[]>;
/**
 * Await the committee to be slashed out of the validator set.
 * Currently assumes that the committee is the same size as the validator set.
 */
export declare function awaitCommitteeKicked({ rollup, cheatCodes, committee, slashFactory, slashingProposer, slashingRoundSize, aztecSlotDuration, logger, dateProvider, }: {
    rollup: RollupContract;
    cheatCodes: RollupCheatCodes;
    committee: readonly `0x${string}`[];
    slashFactory: SlashFactoryContract;
    slashingProposer: EmpireSlashingProposerContract | TallySlashingProposerContract | undefined;
    slashingRoundSize: number;
    aztecSlotDuration: number;
    dateProvider: TestDateProvider;
    logger: Logger;
}): Promise<void>;
//# sourceMappingURL=shared.d.ts.map