/* GENERATED FILE */
import React, { forwardRef } from 'react'

import type {
  IconWeight,
  IconProps,
  PaintFunction,
  Icon,
  RenderFunction,
} from '../lib'
import { renderPathForWeight, useIconContext, IconBase } from '../lib'

export const IconGearSix: Icon = forwardRef<SVGSVGElement, IconProps>(
  (props, ref) => {
    let path: PaintFunction

    switch (props.weight) {
      case 'fill':
        path = () => (
          <>
            <path d="M237.46191,104.26611a8.00135,8.00135,0,0,0-3.93554-5.29687L209.75049,85.77051c-1.31592-2.55078-2.75391-5.04639-4.29981-7.46094l.458-27.2124a8.00049,8.00049,0,0,0-2.62158-6.05811A111.13811,111.13811,0,0,0,162.17773,21.3418a8.00131,8.00131,0,0,0-6.55468.75927l-23.31836,13.9917c-2.86865-.13672-5.75-.13916-8.61133-.00683L100.35547,22.08252a8.003,8.003,0,0,0-6.55762-.75879A111.15557,111.15557,0,0,0,52.7207,45.07715a8.00055,8.00055,0,0,0-2.61963,6.05664l.45752,27.18994c-1.55078,2.41455-2.99365,4.90869-4.31152,7.4541l-23.7959,13.21a8.0003,8.0003,0,0,0-3.93555,5.29932,111.13522,111.13522,0,0,0,.03223,47.45068,8.00135,8.00135,0,0,0,3.93555,5.29688L46.25928,170.2334c1.31592,2.55078,2.7539,5.04639,4.2998,7.46094l-.458,27.2124a8.00053,8.00053,0,0,0,2.62159,6.0581A111.13809,111.13809,0,0,0,93.832,234.66211a8.00177,8.00177,0,0,0,6.55469-.75928l23.31836-13.9917c2.86816.13623,5.749.13867,8.61133.00684l23.33789,14.00342a8.00237,8.00237,0,0,0,6.55761.75879,111.15549,111.15549,0,0,0,41.07715-23.75342,8.00052,8.00052,0,0,0,2.61963-6.05664l-.45752-27.18994c1.55078-2.41455,2.99365-4.9087,4.31153-7.45411l23.79589-13.21a8.0002,8.0002,0,0,0,3.93555-5.29931A111.13527,111.13527,0,0,0,237.46191,104.26611ZM172.0049,128.002a44,44,0,1,1-44-44A44.04972,44.04972,0,0,1,172.0049,128.002Z" />
          </>
        )
        break

      default:
        path = () => (
          <>
            <circle
              cx="128.00098"
              cy="128.00195"
              r="48"
              fill="none"
              stroke="currentColor"
              strokeLinecap="round"
              strokeLinejoin="round"
              strokeWidth="18"
            />
            <path
              d="M197.40626,80.65057a83.91174,83.91174,0,0,1,6.28744,10.91L229.64,105.964a103.88962,103.88962,0,0,1,.03183,44.05764L203.71112,164.433a83.912,83.912,0,0,1-6.30466,10.90011l.49943,29.67182a103.88959,103.88959,0,0,1-38.13912,22.05638l-25.46093-15.27692a83.91075,83.91075,0,0,1-12.5921-.01L96.2669,227.04288a103.88979,103.88979,0,0,1-38.171-22.00126l.49974-29.68828a83.91052,83.91052,0,0,1-6.28743-10.91005L26.362,150.0399a103.88962,103.88962,0,0,1-.03182-44.05764L52.29083,91.5709a83.9124,83.9124,0,0,1,6.30466-10.9001L58.09606,50.999A103.88973,103.88973,0,0,1,96.23518,28.94259l25.46094,15.27693a83.91075,83.91075,0,0,1,12.5921.00995L159.73505,28.961a103.88943,103.88943,0,0,1,38.171,22.00126Z"
              fill="none"
              stroke="currentColor"
              strokeLinecap="round"
              strokeLinejoin="round"
              strokeWidth="18"
            />
          </>
        )
        break
    }

    const renderPath: RenderFunction = (weight: IconWeight) =>
      renderPathForWeight(weight, path)

    const { useIconProps } = useIconContext()
    const parsedProps = useIconProps(props)

    return <IconBase ref={ref} {...parsedProps} renderPath={renderPath} />
  }
)
