[
  {
    "inputs": [
      {
        "components": [
          {
            "internalType": "string",
            "name": "poolName",
            "type": "string"
          },
          {
            "internalType": "string",
            "name": "poolSymbol",
            "type": "string"
          },
          {
            "internalType": "uint256",
            "name": "targetExcessLiquidityPercentage",
            "type": "uint256"
          },
          {
            "components": [
              {
                "internalType": "uint256",
                "name": "ratio",
                "type": "uint256"
              },
              {
                "internalType": "uint256",
                "name": "interestRate",
                "type": "uint256"
              },
              {
                "internalType": "uint256",
                "name": "minDepositAmount",
                "type": "uint256"
              },
              {
                "internalType": "uint256",
                "name": "maxDepositAmount",
                "type": "uint256"
              }
            ],
            "internalType": "struct CreateTrancheConfig[]",
            "name": "tranches",
            "type": "tuple[]"
          },
          {
            "internalType": "address",
            "name": "poolAdmin",
            "type": "address"
          },
          {
            "internalType": "address",
            "name": "drawRecipient",
            "type": "address"
          },
          {
            "internalType": "uint256",
            "name": "desiredDrawAmount",
            "type": "uint256"
          }
        ],
        "internalType": "struct CreatePoolConfig",
        "name": "createPoolConfig",
        "type": "tuple"
      }
    ],
    "name": "createPool",
    "outputs": [
      {
        "components": [
          {
            "internalType": "address",
            "name": "lendingPool",
            "type": "address"
          },
          {
            "internalType": "address",
            "name": "pendingPool",
            "type": "address"
          },
          {
            "internalType": "address[]",
            "name": "tranches",
            "type": "address[]"
          }
        ],
        "internalType": "struct LendingPoolDeployment",
        "name": "lendingPoolDeployment",
        "type": "tuple"
      }
    ],
    "stateMutability": "nonpayable",
    "type": "function"
  }
]