import { CheckpointNumber } from '@aztec/foundation/branded-types';
import type { Logger } from '@aztec/foundation/log';
/**
 * Snapshot of chain state captured during setup for comparison in teardown.
 */
export interface ChainHealthSnapshot {
    blockNumber: number;
    checkpointNumber: CheckpointNumber;
    timestamp: number;
}
/**
 * Pre-flight and post-flight health checks for the Aztec network.
 *
 * Use in beforeAll/afterAll to validate the chain is healthy before tests run
 * and verify it continued progressing during the test.
 *
 * @example
 * ```typescript
 * const health = new ChainHealth(config.NAMESPACE, logger);
 *
 * beforeAll(async () => {
 *   await health.setup();
 * });
 *
 * afterAll(async () => {
 *   await health.teardown();
 * });
 * ```
 */
export declare class ChainHealth {
    private namespace;
    private logger;
    private snapshot?;
    constructor(namespace: string, logger: Logger);
    /**
     * Pre-flight health check. Validates chain is in a testable state and captures
     * initial state for comparison in teardown.
     *
     * Checks performed:
     * - Node is reachable and returns valid info
     * - ENR exists
     * - L1 is accessible
     * - At least 1 L2 block has been mined
     * - Committee exists
     * - At least 1 checkpoint has been reached
     *
     * @throws Error if any health check fails
     */
    setup(): Promise<void>;
    /**
     * Post-flight health check. Verifies the chain continued progressing during the test.
     *
     * For tests that ran longer than the threshold, checks:
     * - Block number increased since setup
     * - Checkpoint number increased since setup
     *
     * For shorter tests, skips the check.
     *
     * @throws Error if chain did not progress
     */
    teardown(): Promise<void>;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhbHRoLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc3BhcnRhbi91dGlscy9oZWFsdGgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDbkUsT0FBTyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFNcEQ7O0dBRUc7QUFDSCxNQUFNLFdBQVcsbUJBQW1CO0lBQ2xDLFdBQVcsRUFBRSxNQUFNLENBQUM7SUFDcEIsZ0JBQWdCLEVBQUUsZ0JBQWdCLENBQUM7SUFDbkMsU0FBUyxFQUFFLE1BQU0sQ0FBQztDQUNuQjtBQUVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FrQkc7QUFDSCxxQkFBYSxXQUFXO0lBQ3RCLE9BQU8sQ0FBQyxTQUFTLENBQVM7SUFDMUIsT0FBTyxDQUFDLE1BQU0sQ0FBUztJQUN2QixPQUFPLENBQUMsUUFBUSxDQUFDLENBQXNCO0lBRXZDLFlBQVksU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUc1QztJQUVEOzs7Ozs7Ozs7Ozs7O09BYUc7SUFDRyxLQUFLLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxDQW1HM0I7SUFFRDs7Ozs7Ozs7OztPQVVHO0lBQ0csUUFBUSxJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0E4RTlCO0NBQ0YifQ==