import type { Signer } from "ethers";
export declare const VOTE_TYPEHASH: string;
/**
 * Helper to create signed committee attestation evidence for Lane A.
 *
 * Returns `abi.encode(uint256 proofType, address[] voters, bytes32[] dataHashes,
 *                     bytes evidence, uint256 deadline, bytes[] signatures)` with
 * voters sorted ascending by address.
 *
 * Each voter signs the EIP-712 `AccusationVote` struct against the
 * `InterfoldSlashing/1` domain anchored at `verifyingContract`. This binds the
 * attestation to a specific SlashingManager deployment on a specific chain,
 * eliminating the cross-chain / cross-contract replay class (H-10, M-24).
 *
 * @param voterSigners - Committee members signing the accusation.
 * @param e3Id         - The E3 the accusation targets.
 * @param operator     - The accused operator address.
 * @param verifyingContract - Address of the SlashingManager (EIP-712 domain).
 * @param proofType    - Numeric proof type, mapped to a slash reason on-chain.
 * @param chainId      - Chain ID for the EIP-712 domain. Defaults to 31337 (hardhat).
 * @param evidence     - Evidence preimage bytes. All voters sign
 *                       `keccak256(evidence)` as `dataHash`.
 * @param deadline     - Optional unix expiry. Defaults to MaxUint256.
 * @param dataHashOverride - Optional negative-test override for signed `dataHash`.
 */
export declare function signAndEncodeAttestation(voterSigners: Signer[], e3Id: number, operator: string, verifyingContract: string, proofType?: number, chainId?: number, evidence?: string, deadline?: bigint, dataHashOverride?: string): Promise<string>;
//# sourceMappingURL=attestation.d.ts.map