// SPDX-License-Identifier: MIT pragma solidity 0.8.24; /// @notice Minimal ABI surface compatible with Chainlink VRF V2.5 subscriptions. /// @dev This interface is not an oracle implementation or a proof verifier. interface IVrfV25 { struct RandomWordsRequest { bytes32 keyHash; uint256 subId; uint16 requestConfirmations; uint32 callbackGasLimit; uint32 numWords; bytes extraArgs; } function createSubscription() external returns (uint256 subId); function addConsumer(uint256 subId, address consumer) external; function requestRandomWords(RandomWordsRequest calldata req) external returns (uint256 requestId); function fundSubscriptionWithNative(uint256 subId) external payable; function getSubscription(uint256 subId) external view returns ( uint96 balance, uint96 nativeBalance, uint64 reqCount, address owner, address[] memory consumers ); }