/**
 * Test fixtures and utilities to set up and run a test using multiple validators
 */
import { type AztecNodeConfig, AztecNodeService } from '@aztec/aztec-node';
import type { SentTx } from '@aztec/aztec.js';
import type { DateProvider } from '@aztec/foundation/timer';
import type { ProverNodeDeps } from '@aztec/prover-node';
import type { PXEService } from '@aztec/pxe/server';
import type { PublicDataTreeLeaf } from '@aztec/stdlib/trees';
import { AsyncLocalStorage } from 'node:async_hooks';
export declare const ATTESTER_PRIVATE_KEYS_START_INDEX = 3;
export interface NodeContext {
    node: AztecNodeService;
    pxeService: PXEService;
    txs: SentTx[];
}
export declare function generatePrivateKeys(startIndex: number, numberOfKeys: number): `0x${string}`[];
export declare function createNodes(config: AztecNodeConfig & {
    dontStartSequencer?: boolean;
}, dateProvider: DateProvider, bootstrapNodeEnr: string, numNodes: number, bootNodePort: number, prefilledPublicData?: PublicDataTreeLeaf[], dataDirectory?: string, metricsPort?: number, indexOffset?: number): Promise<AztecNodeService[]>;
/** Creates a P2P enabled instance of Aztec Node Service with a validator */
export declare function createNode(config: AztecNodeConfig & {
    dontStartSequencer?: boolean;
}, dateProvider: DateProvider, tcpPort: number, bootstrapNode: string | undefined, addressIndex: number, prefilledPublicData?: PublicDataTreeLeaf[], dataDirectory?: string, metricsPort?: number, loggerIdStorage?: AsyncLocalStorage<string>): Promise<AztecNodeService>;
/** Creates a P2P enabled instance of Aztec Node Service without a validator */
export declare function createNonValidatorNode(baseConfig: AztecNodeConfig, dateProvider: DateProvider, tcpPort: number, bootstrapNode: string | undefined, prefilledPublicData?: PublicDataTreeLeaf[], dataDirectory?: string, metricsPort?: number, loggerIdStorage?: AsyncLocalStorage<string>): Promise<AztecNodeService>;
export declare function createProverNode(config: AztecNodeConfig, tcpPort: number, bootstrapNode: string | undefined, addressIndex: number, proverNodeDeps: ProverNodeDeps & Required<Pick<ProverNodeDeps, 'dateProvider'>>, prefilledPublicData?: PublicDataTreeLeaf[], dataDirectory?: string, metricsPort?: number, loggerIdStorage?: AsyncLocalStorage<string>): Promise<import("@aztec/prover-node").ProverNode>;
export declare function createP2PConfig(config: AztecNodeConfig, bootstrapNodeEnr?: string, port?: number, dataDirectory?: string): Promise<AztecNodeConfig>;
export declare function createValidatorConfig(config: AztecNodeConfig, bootstrapNodeEnr?: string, port?: number, addressIndex?: number, dataDirectory?: string): Promise<AztecNodeConfig>;
//# sourceMappingURL=setup_p2p_test.d.ts.map