[
  "function facets() pure returns (tuple(address facetAddress, bytes4[] functionSelectors)[])",
  "function facetFunctionSelectors(address facet) pure returns (bytes4[] functionSelectors)",
  "function facetAddresses() pure returns (address[] addresses)",
  "function facetAddress(bytes4 functionSelector) pure returns (address)",
  "function emitDiamondCutEvent() returns (bool)",
  "error ImplementationIsSterile(address implementation)",
  "error NoChange()",
  "error NotAContract(address contr)",
  "error NotNominated(address addr)",
  "error Unauthorized(address addr)",
  "error UpgradeSimulationFailed()",
  "error ZeroAddress()",
  "event OwnerChanged(address oldOwner, address newOwner)",
  "event OwnerNominated(address newOwner)",
  "event Upgraded(address indexed self, address implementation)",
  "function acceptOwnership()",
  "function getImplementation() view returns (address)",
  "function nominateNewOwner(address newNominatedOwner)",
  "function nominatedOwner() view returns (address)",
  "function owner() view returns (address)",
  "function renounceNomination()",
  "function simulateUpgradeTo(address newImplementation)",
  "function upgradeTo(address newImplementation)",
  "error EmptyRevertReason()",
  "error Errors(bytes[] errors)",
  "error InvalidNodeDefinition(tuple(uint8 nodeType, bytes parameters, bytes32[] parents) nodeType)",
  "error InvalidParameter(string parameter, string reason)",
  "error InvalidPrice(int256 price)",
  "error NodeNotRegistered(bytes32 nodeId)",
  "error OracleDataRequired(address oracleContract, bytes oracleQuery)",
  "error OverflowInt256ToUint256()",
  "error OverflowInt56ToInt24()",
  "error OverflowUint256ToInt256()",
  "error OverflowUint256ToUint160()",
  "error OverflowUint56ToInt56()",
  "event NodeRegistered(bytes32 nodeId, uint8 nodeType, bytes parameters, bytes32[] parents)",
  "function getNode(bytes32 nodeId) pure returns (tuple(uint8 nodeType, bytes parameters, bytes32[] parents) node)",
  "function getNodeId(uint8 nodeType, bytes parameters, bytes32[] parents) pure returns (bytes32 nodeId)",
  "function process(bytes32 nodeId) view returns (tuple(int256 price, uint256 timestamp, uint256 __slotAvailableForFutureUse1, uint256 __slotAvailableForFutureUse2) node)",
  "function processManyWithManyRuntime(bytes32[] nodeIds, bytes32[][] runtimeKeys, bytes32[][] runtimeValues) view returns (tuple(int256 price, uint256 timestamp, uint256 __slotAvailableForFutureUse1, uint256 __slotAvailableForFutureUse2)[] nodes)",
  "function processManyWithRuntime(bytes32[] nodeIds, bytes32[] runtimeKeys, bytes32[] runtimeValues) view returns (tuple(int256 price, uint256 timestamp, uint256 __slotAvailableForFutureUse1, uint256 __slotAvailableForFutureUse2)[] nodes)",
  "function processWithRuntime(bytes32 nodeId, bytes32[] runtimeKeys, bytes32[] runtimeValues) view returns (tuple(int256 price, uint256 timestamp, uint256 __slotAvailableForFutureUse1, uint256 __slotAvailableForFutureUse2) node)",
  "function registerNode(uint8 nodeType, bytes parameters, bytes32[] parents) returns (bytes32 nodeId)"
]