import { type AztecNode, type SentTx, type WaitOpts } from '@aztec/aztec.js';
import { BenchmarkingContract } from '@aztec/noir-test-contracts.js/Benchmarking';
import { type PXEService } from '@aztec/pxe/server';
import type { MetricsType } from '@aztec/telemetry-client';
import type { BenchmarkTelemetryClient } from '@aztec/telemetry-client/bench';
import { type EndToEndContext, type SetupOptions } from '../fixtures/utils.js';
/**
 * Setup for benchmarks. Initializes a remote node with a single account and deploys a benchmark contract.
 */
export declare function benchmarkSetup(opts: Partial<SetupOptions> & {
    /** What metrics to export */ metrics: (MetricsType | MetricFilter)[];
    /** Where to output the benchmark data (defaults to BENCH_OUTPUT or bench.json) */
    benchOutput?: string;
}): Promise<{
    telemetry: BenchmarkTelemetryClient;
    context: EndToEndContext;
    contract: BenchmarkingContract;
    sequencer: import("@aztec/sequencer-client").SequencerClient;
}>;
type MetricFilter = {
    source: MetricsType;
    transform: (value: number) => number;
    name: string;
    unit?: string;
};
export type GithubActionBenchmarkResult = {
    name: string;
    value: number;
    range?: string;
    unit: string;
    extra?: string;
};
/**
 * Assembles and sends multiple transactions simultaneously to the node in context.
 * Each tx is the result of calling makeCall.
 * @param txCount - How many txs to send
 * @param context - End to end context.
 * @param contract - Target contract.
 * @param heavyPublicCompute - Whether the transactions include heavy public compute (like a big sha256).
 * @returns Array of sent txs.
 */
export declare function sendTxs(txCount: number, context: EndToEndContext, contract: BenchmarkingContract, heavyPublicCompute?: boolean): Promise<SentTx[]>;
export declare function waitTxs(txs: SentTx[], context: EndToEndContext, txWaitOpts?: WaitOpts): Promise<void>;
/**
 * Creates a new PXE
 * @param node - Node to connect the pxe to.
 * @param contract - Benchmark contract to add to the pxe.
 * @param startingBlock - First l2 block to process.
 * @returns The new PXE.
 */
export declare function createNewPXE(node: AztecNode, contract: BenchmarkingContract): Promise<PXEService>;
export {};
//# sourceMappingURL=utils.d.ts.map