Extension [ <persistent> extension #66 geos version 1.0.0 ] {

  - Constants [20] {
    Constant [ int GEOSBUF_CAP_ROUND ] { 1 }
    Constant [ int GEOSBUF_CAP_FLAT ] { 2 }
    Constant [ int GEOSBUF_CAP_SQUARE ] { 3 }
    Constant [ int GEOSBUF_JOIN_ROUND ] { 1 }
    Constant [ int GEOSBUF_JOIN_MITRE ] { 2 }
    Constant [ int GEOSBUF_JOIN_BEVEL ] { 3 }
    Constant [ int GEOS_POINT ] { 0 }
    Constant [ int GEOS_LINESTRING ] { 1 }
    Constant [ int GEOS_LINEARRING ] { 2 }
    Constant [ int GEOS_POLYGON ] { 3 }
    Constant [ int GEOS_MULTIPOINT ] { 4 }
    Constant [ int GEOS_MULTILINESTRING ] { 5 }
    Constant [ int GEOS_MULTIPOLYGON ] { 6 }
    Constant [ int GEOS_GEOMETRYCOLLECTION ] { 7 }
    Constant [ int GEOSVALID_ALLOW_SELFTOUCHING_RING_FORMING_HOLE ] { 1 }
    Constant [ int GEOSRELATE_BNR_MOD2 ] { 1 }
    Constant [ int GEOSRELATE_BNR_OGC ] { 1 }
    Constant [ int GEOSRELATE_BNR_ENDPOINT ] { 2 }
    Constant [ int GEOSRELATE_BNR_MULTIVALENT_ENDPOINT ] { 3 }
    Constant [ int GEOSRELATE_BNR_MONOVALENT_ENDPOINT ] { 4 }
  }

  - Functions {
    Function [ <internal:geos> function GEOSVersion ] {

      - Parameters [0] {
      }
    }
    Function [ <internal:geos> function GEOSPolygonize ] {

      - Parameters [1] {
        Parameter #0 [ <required> $geom ]
      }
    }
    Function [ <internal:geos> function GEOSLineMerge ] {

      - Parameters [1] {
        Parameter #0 [ <required> $geom ]
      }
    }
    Function [ <internal:geos> function GEOSSharedPaths ] {

      - Parameters [2] {
        Parameter #0 [ <required> $geom1 ]
        Parameter #1 [ <required> $geom2 ]
      }
    }
    Function [ <internal:geos> function GEOSRelateMatch ] {

      - Parameters [2] {
        Parameter #0 [ <required> $maxtric ]
        Parameter #1 [ <required> $pattern ]
      }
    }
  }

  - Classes [5] {
    Class [ <internal:geos> class GEOSWKTReader ] {

      - Constants [0] {
      }

      - Static properties [0] {
      }

      - Static methods [0] {
      }

      - Properties [0] {
      }

      - Methods [2] {
        Method [ <internal:geos, ctor> public method __construct ] {

          - Parameters [0] {
          }
        }

        Method [ <internal:geos> public method read ] {

          - Parameters [1] {
            Parameter #0 [ <required> $wkt ]
          }
        }
      }
    }

    Class [ <internal:geos> class GEOSWKTWriter ] {

      - Constants [0] {
      }

      - Static properties [0] {
      }

      - Static methods [0] {
      }

      - Properties [0] {
      }

      - Methods [7] {
        Method [ <internal:geos, ctor> public method __construct ] {

          - Parameters [0] {
          }
        }

        Method [ <internal:geos> public method write ] {

          - Parameters [1] {
            Parameter #0 [ <required> $geom ]
          }
        }

        Method [ <internal:geos> public method setTrim ] {

          - Parameters [1] {
            Parameter #0 [ <required> $num ]
          }
        }

        Method [ <internal:geos> public method setRoundingPrecision ] {

          - Parameters [1] {
            Parameter #0 [ <required> $num ]
          }
        }

        Method [ <internal:geos> public method setOutputDimension ] {

          - Parameters [1] {
            Parameter #0 [ <required> $num ]
          }
        }

        Method [ <internal:geos> public method getOutputDimension ] {

          - Parameters [0] {
          }
        }

        Method [ <internal:geos> public method setOld3D ] {

          - Parameters [1] {
            Parameter #0 [ <required> $bval ]
          }
        }
      }
    }

    Class [ <internal:geos> class GEOSGeometry implements Stringable ] {

      - Constants [0] {
      }

      - Static properties [0] {
      }

      - Static methods [0] {
      }

      - Properties [0] {
      }

      - Methods [66] {
        Method [ <internal:geos, ctor> public method __construct ] {

          - Parameters [0] {
          }
        }

        Method [ <internal:geos, prototype Stringable> public method __toString ] {

          - Parameters [0] {
          }
          - Return [ string ]
        }

        Method [ <internal:geos> public method project ] {

          - Parameters [2] {
            Parameter #0 [ <required> $geom ]
            Parameter #1 [ <optional> $normalized = <default> ]
          }
        }

        Method [ <internal:geos> public method interpolate ] {

          - Parameters [2] {
            Parameter #0 [ <required> $dist ]
            Parameter #1 [ <optional> $normalized = <default> ]
          }
        }

        Method [ <internal:geos> public method buffer ] {

          - Parameters [2] {
            Parameter #0 [ <required> $dist ]
            Parameter #1 [ <optional> $style = <default> ]
          }
        }

        Method [ <internal:geos> public method offsetCurve ] {

          - Parameters [2] {
            Parameter #0 [ <required> $dist ]
            Parameter #1 [ <optional> $style = <default> ]
          }
        }

        Method [ <internal:geos> public method envelope ] {

          - Parameters [0] {
          }
        }

        Method [ <internal:geos> public method intersection ] {

          - Parameters [1] {
            Parameter #0 [ <required> $geom ]
          }
        }

        Method [ <internal:geos> public method convexHull ] {

          - Parameters [0] {
          }
        }

        Method [ <internal:geos> public method difference ] {

          - Parameters [1] {
            Parameter #0 [ <required> $geom ]
          }
        }

        Method [ <internal:geos> public method symDifference ] {

          - Parameters [1] {
            Parameter #0 [ <required> $geom ]
          }
        }

        Method [ <internal:geos> public method boundary ] {

          - Parameters [0] {
          }
        }

        Method [ <internal:geos> public method union ] {

          - Parameters [1] {
            Parameter #0 [ <optional> $geom = <default> ]
          }
        }

        Method [ <internal:geos> public method pointOnSurface ] {

          - Parameters [0] {
          }
        }

        Method [ <internal:geos> public method centroid ] {

          - Parameters [0] {
          }
        }

        Method [ <internal:geos> public method relate ] {

          - Parameters [2] {
            Parameter #0 [ <required> $geom ]
            Parameter #1 [ <optional> $pattern = <default> ]
          }
        }

        Method [ <internal:geos> public method relateBoundaryNodeRule ] {

          - Parameters [2] {
            Parameter #0 [ <required> $geom ]
            Parameter #1 [ <required> $rule ]
          }
        }

        Method [ <internal:geos> public method simplify ] {

          - Parameters [2] {
            Parameter #0 [ <required> $tolerance ]
            Parameter #1 [ <optional> $preserveTopology = <default> ]
          }
        }

        Method [ <internal:geos> public method normalize ] {

          - Parameters [0] {
          }
        }

        Method [ <internal:geos> public method setPrecision ] {

          - Parameters [2] {
            Parameter #0 [ <required> $gridsize ]
            Parameter #1 [ <optional> $flags = <default> ]
          }
        }

        Method [ <internal:geos> public method getPrecision ] {

          - Parameters [0] {
          }
        }

        Method [ <internal:geos> public method extractUniquePoints ] {

          - Parameters [0] {
          }
        }

        Method [ <internal:geos> public method disjoint ] {

          - Parameters [1] {
            Parameter #0 [ <required> $geom ]
          }
        }

        Method [ <internal:geos> public method touches ] {

          - Parameters [1] {
            Parameter #0 [ <required> $geom ]
          }
        }

        Method [ <internal:geos> public method intersects ] {

          - Parameters [1] {
            Parameter #0 [ <required> $geom ]
          }
        }

        Method [ <internal:geos> public method crosses ] {

          - Parameters [1] {
            Parameter #0 [ <required> $geom ]
          }
        }

        Method [ <internal:geos> public method within ] {

          - Parameters [1] {
            Parameter #0 [ <required> $geom ]
          }
        }

        Method [ <internal:geos> public method contains ] {

          - Parameters [1] {
            Parameter #0 [ <required> $geom ]
          }
        }

        Method [ <internal:geos> public method overlaps ] {

          - Parameters [1] {
            Parameter #0 [ <required> $geom ]
          }
        }

        Method [ <internal:geos> public method covers ] {

          - Parameters [1] {
            Parameter #0 [ <required> $geom ]
          }
        }

        Method [ <internal:geos> public method coveredBy ] {

          - Parameters [1] {
            Parameter #0 [ <required> $geom ]
          }
        }

        Method [ <internal:geos> public method equals ] {

          - Parameters [1] {
            Parameter #0 [ <required> $geom ]
          }
        }

        Method [ <internal:geos> public method equalsExact ] {

          - Parameters [1] {
            Parameter #0 [ <required> $geom ]
          }
        }

        Method [ <internal:geos> public method isEmpty ] {

          - Parameters [0] {
          }
        }

        Method [ <internal:geos> public method checkValidity ] {

          - Parameters [1] {
            Parameter #0 [ <optional> $flags = <default> ]
          }
        }

        Method [ <internal:geos> public method isSimple ] {

          - Parameters [0] {
          }
        }

        Method [ <internal:geos> public method isRing ] {

          - Parameters [0] {
          }
        }

        Method [ <internal:geos> public method hasZ ] {

          - Parameters [0] {
          }
        }

        Method [ <internal:geos> public method isClosed ] {

          - Parameters [0] {
          }
        }

        Method [ <internal:geos> public method typeName ] {

          - Parameters [0] {
          }
        }

        Method [ <internal:geos> public method typeId ] {

          - Parameters [0] {
          }
        }

        Method [ <internal:geos> public method getSRID ] {

          - Parameters [0] {
          }
        }

        Method [ <internal:geos> public method setSRID ] {

          - Parameters [1] {
            Parameter #0 [ <optional> $srid = <default> ]
          }
        }

        Method [ <internal:geos> public method numGeometries ] {

          - Parameters [0] {
          }
        }

        Method [ <internal:geos> public method geometryN ] {

          - Parameters [1] {
            Parameter #0 [ <required> $num ]
          }
        }

        Method [ <internal:geos> public method numInteriorRings ] {

          - Parameters [0] {
          }
        }

        Method [ <internal:geos> public method numPoints ] {

          - Parameters [0] {
          }
        }

        Method [ <internal:geos> public method getX ] {

          - Parameters [0] {
          }
        }

        Method [ <internal:geos> public method getY ] {

          - Parameters [0] {
          }
        }

        Method [ <internal:geos> public method interiorRingN ] {

          - Parameters [1] {
            Parameter #0 [ <required> $num ]
          }
        }

        Method [ <internal:geos> public method exteriorRing ] {

          - Parameters [0] {
          }
        }

        Method [ <internal:geos> public method numCoordinates ] {

          - Parameters [0] {
          }
        }

        Method [ <internal:geos> public method dimension ] {

          - Parameters [0] {
          }
        }

        Method [ <internal:geos> public method coordinateDimension ] {

          - Parameters [0] {
          }
        }

        Method [ <internal:geos> public method pointN ] {

          - Parameters [1] {
            Parameter #0 [ <required> $num ]
          }
        }

        Method [ <internal:geos> public method startPoint ] {

          - Parameters [0] {
          }
        }

        Method [ <internal:geos> public method endPoint ] {

          - Parameters [0] {
          }
        }

        Method [ <internal:geos> public method area ] {

          - Parameters [0] {
          }
        }

        Method [ <internal:geos> public method length ] {

          - Parameters [0] {
          }
        }

        Method [ <internal:geos> public method distance ] {

          - Parameters [1] {
            Parameter #0 [ <required> $geom ]
          }
        }

        Method [ <internal:geos> public method hausdorffDistance ] {

          - Parameters [1] {
            Parameter #0 [ <required> $geom ]
          }
        }

        Method [ <internal:geos> public method snapTo ] {

          - Parameters [2] {
            Parameter #0 [ <required> $geom ]
            Parameter #1 [ <required> $tolerance ]
          }
        }

        Method [ <internal:geos> public method node ] {

          - Parameters [0] {
          }
        }

        Method [ <internal:geos> public method delaunayTriangulation ] {

          - Parameters [2] {
            Parameter #0 [ <optional> $tolerance = <default> ]
            Parameter #1 [ <optional> $edgeonly = <default> ]
          }
        }

        Method [ <internal:geos> public method voronoiDiagram ] {

          - Parameters [3] {
            Parameter #0 [ <optional> $tolerance = <default> ]
            Parameter #1 [ <optional> $edgeonly = <default> ]
            Parameter #2 [ <optional> $extent = <default> ]
          }
        }

        Method [ <internal:geos> public method clipByRect ] {

          - Parameters [4] {
            Parameter #0 [ <required> $xmin ]
            Parameter #1 [ <required> $ymin ]
            Parameter #2 [ <required> $xmax ]
            Parameter #3 [ <required> $ymax ]
          }
        }
      }
    }

    Class [ <internal:geos> class GEOSWKBWriter ] {

      - Constants [0] {
      }

      - Static properties [0] {
      }

      - Static methods [0] {
      }

      - Properties [0] {
      }

      - Methods [9] {
        Method [ <internal:geos, ctor> public method __construct ] {

          - Parameters [0] {
          }
        }

        Method [ <internal:geos> public method getOutputDimension ] {

          - Parameters [0] {
          }
        }

        Method [ <internal:geos> public method setOutputDimension ] {

          - Parameters [1] {
            Parameter #0 [ <required> $num ]
          }
        }

        Method [ <internal:geos> public method getByteOrder ] {

          - Parameters [0] {
          }
        }

        Method [ <internal:geos> public method setByteOrder ] {

          - Parameters [1] {
            Parameter #0 [ <required> $num ]
          }
        }

        Method [ <internal:geos> public method getIncludeSRID ] {

          - Parameters [0] {
          }
        }

        Method [ <internal:geos> public method setIncludeSRID ] {

          - Parameters [1] {
            Parameter #0 [ <required> $num ]
          }
        }

        Method [ <internal:geos> public method write ] {

          - Parameters [1] {
            Parameter #0 [ <required> $geom ]
          }
        }

        Method [ <internal:geos> public method writeHEX ] {

          - Parameters [1] {
            Parameter #0 [ <required> $geom ]
          }
        }
      }
    }

    Class [ <internal:geos> class GEOSWKBReader ] {

      - Constants [0] {
      }

      - Static properties [0] {
      }

      - Static methods [0] {
      }

      - Properties [0] {
      }

      - Methods [3] {
        Method [ <internal:geos, ctor> public method __construct ] {

          - Parameters [0] {
          }
        }

        Method [ <internal:geos> public method read ] {

          - Parameters [1] {
            Parameter #0 [ <required> $wkb ]
          }
        }

        Method [ <internal:geos> public method readHEX ] {

          - Parameters [1] {
            Parameter #0 [ <required> $wkb ]
          }
        }
      }
    }
  }
}