Trying to access points[0].position of type Transform.

I am triyng to set a variable to points[0].position. Its saying cannot apply indexing with of type transform. What I want is the ability in the inspector to add positionPoints such as pointA,pointB,pointC. and so on. Then the object will move from point[0] all the way to the end of the array lets say i want 5, it will go point[0], then point[1], then eventually end at point[4]. But its not letting me index with Transforms. Maybe a list will fix this? Any advice on this, or how do this? Here is my script.

using UnityEngine;
using System.Collections;

public class XY_MoveScript1 : MonoBehaviour
{
  
    //Movement Parameters.
   public Transform points[];

    public bool startAutomaticly;
    public bool startFromTrigger;
    public bool enableMultiPoints;

    public GameObject triggerObject;
    public Vector3 offset;


    public float speed;
    public float delayStartBy = 0;
    private bool go;
    private Transform destination;
   
    private bool yes;



    void Awake() { transform.position = points[0]; }
   
    void Start()
    {
        //---------------Through Errors if Needed----------------
        if (!startFromTrigger && !startAutomaticly) { Debug.LogError("You have not specified to StartAutomaticly or StartFromTrigger!" + this.gameObject); return; }
        if (startAutomaticly && startFromTrigger) { Debug.LogError("You have StartFromTrigger And Start automaticly checked on " + this.gameObject + "!"); return; }
        if (startFromTrigger && !triggerObject) { Debug.LogError("You have Start from trigger checked, but you forgot to apply the TriggerGO1 prefab!" + this.gameObject); return; }
        //-------------------------------------------------------


        destination = pointB;
        if (startAutomaticly)
        {
            StartCoroutine(WaitTime());
        }
        else if (startFromTrigger)
        {
            go= false;
            GameObject trigger = Instantiate(triggerObject, transform.position + offset, transform.rotation) as GameObject;
        }
    }

    void Update()
    {
        if (go && enableMultiPoints)
        { 

        }
        else if (go && !enableMultiPoints)
        {
            float step = speed * Time.deltaTime;
            transform.position = Vector3.MoveTowards(transform.position, destination.position, step);

            if (transform.position == pointB.position)
            {
                destination = pointA;
            }
            else if (transform.position == pointA.position)
            {
                destination = pointB;
            }
        }

    }
    private IEnumerator WaitTime()
    {
        //Wait this long.
        yield return new WaitForSeconds(delayStartBy);
        go = true;
    }

}

Change

public Transform points[];

To

public Transform[] points;

And change

void Awake() { transform.position = points[0]; }

To

void Awake() { transform.position = points[0].position; }

I also don’t see you delcare pointA or pointB anywhere.