import { type ApiSchemaFor } from '@aztec/foundation/schemas';
import { BlockAttestation } from '../p2p/block_attestation.js';
import { EpochProofQuote } from '../prover_coordination/epoch_proof_quote.js';
import { Tx } from '../tx/tx.js';
export type PeerInfo = {
    status: 'connected';
    score: number;
    id: string;
} | {
    status: 'dialing';
    dialStatus: string;
    id: string;
    addresses: string[];
} | {
    status: 'cached';
    id: string;
    addresses: string[];
    enr: string;
    dialAttempts: number;
};
/** Exposed API to the P2P module. */
export interface P2PApi {
    /**
     * Queries the Attestation pool for attestations for the given slot
     *
     * @param slot - the slot to query
     * @param proposalId - the proposal id to query, or undefined to query all proposals for the slot
     * @returns BlockAttestations
     */
    getAttestationsForSlot(slot: bigint, proposalId?: string): Promise<BlockAttestation[]>;
    /**
     * Queries the EpochProofQuote pool for quotes for the given epoch
     *
     * @param epoch - the epoch to query
     * @returns EpochProofQuotes
     */
    getEpochProofQuotes(epoch: bigint): Promise<EpochProofQuote[]>;
    /**
     * Returns all pending transactions in the transaction pool.
     * @returns An array of Txs.
     */
    getPendingTxs(): Promise<Tx[]>;
    /**
     * Returns the ENR for this node, if any.
     */
    getEncodedEnr(): Promise<string | undefined>;
    /**
     * Returns info for all connected, dialing, and cached peers.
     */
    getPeers(includePending?: boolean): Promise<PeerInfo[]>;
}
export declare const P2PApiSchema: ApiSchemaFor<P2PApi>;
//# sourceMappingURL=p2p.d.ts.map