Sprint cooldown(javascript)

so i just finished making my sprinting/energy bar class (javascript)
this is it so far

#pragma strict
import UnityEngine.UI;

var energy : Image;
var playerEnergy : float;
var  maxEnergy : float = 1;

private var chMotor : CharacterMotor;
private var controller : CharacterController;

function Start () {
	chMotor = GetComponent(CharacterMotor);
	controller = GetComponent(CharacterController);
	playerEnergy = maxEnergy;
}

function Update () {

	if(controller.velocity.magnitude > 0 && Input.GetKey(KeyCode.LeftShift))
	{
		chMotor.movement.maxForwardSpeed = 10;
		chMotor.movement.maxSidewaysSpeed = 10;
		playerEnergy -= Time.deltaTime / 3000;
		
		
		}
	else
	{
		chMotor.movement.maxForwardSpeed = 6;
		chMotor.movement.maxSidewaysSpeed = 6;
	}
	if(playerEnergy > maxEnergy)
	{
		playerEnergy = maxEnergy;
	}
	if(playerEnergy < 0)
	{
		playerEnergy = 0;
	}
	
	energy.fillAmount = playerEnergy;
}

now im not sure how to make a sprint cooldown, im fairly new to coding overall and im really stuck with this. I tried using yield waitforseconds but im not sure how to use it, any ideas?

Maybe something like this? Sure there is a better way, but this is a start

 #pragma strict
 import UnityEngine.UI;
 
 var energy : Image;
 var playerEnergy : float;
 var  maxEnergy : float = 1;
 var canSprintTrigger : boolean = true;
 
 private var chMotor : CharacterMotor;
 private var controller : CharacterController;
 
 function Start () {
     chMotor = GetComponent(CharacterMotor);
     controller = GetComponent(CharacterController);
     playerEnergy = maxEnergy;
 }
 
 function Update () {
 
     if(controller.velocity.magnitude > 0 && Input.GetKey(KeyCode.LeftShift) && canSprintTrigger == true)
     {
         chMotor.movement.maxForwardSpeed = 10;
         chMotor.movement.maxSidewaysSpeed = 10;
         playerEnergy -= Time.deltaTime / 3000;
         canRun();         
         
         }
     else
     {
         chMotor.movement.maxForwardSpeed = 6;
         chMotor.movement.maxSidewaysSpeed = 6;
     }
     if(playerEnergy > maxEnergy)
     {
         playerEnergy = maxEnergy;
     }
     if(playerEnergy < 0)
     {
         playerEnergy = 0;
     }
     
     energy.fillAmount = playerEnergy;
 }
 
 function canRun()
 {
         yield WaitForSeconds(10); //you'll need to play around with how long someone can sprint for before it's set to false. Then again how long you wait until it's set to true again
         canSprintTrigger = false;
         yield WaitForSeconds(10);
         canSprintTrigger = true;
 }

Is it something like this you’re looking for?:

#pragma strict
 import UnityEngine.UI;
 
 var energy : Image;
 var playerEnergy : float;
 var  maxEnergy : float = 1;
 
 var CanSprint = true;
 
 private var chMotor : CharacterMotor;
 private var controller : CharacterController;
 
 function Start () {
     chMotor = GetComponent(CharacterMotor);
     controller = GetComponent(CharacterController);
     playerEnergy = maxEnergy;
 }
 
 function SprintTimer(){
 yield WaitForSeconds(1);
 CanSprint = true;
 }
 
 function Update () {
 
      if(Input.GetKeyUp(KeyCode.LeftShift)&&CanSprint==true)
     {
     
     CanSprint=false;
     SprintTimer();
     
     }
 
     if(controller.velocity.magnitude > 0 && Input.GetKey(KeyCode.LeftShift))
     {
     if(CanSprint==true){
         chMotor.movement.maxForwardSpeed = 10;
         chMotor.movement.maxSidewaysSpeed = 10;
         playerEnergy -= Time.deltaTime / 3000;
         }else{
         
         chMotor.movement.maxForwardSpeed = 6;
         chMotor.movement.maxSidewaysSpeed = 6;
         
         }
         
         
         }
     else
     {
         chMotor.movement.maxForwardSpeed = 6;
         chMotor.movement.maxSidewaysSpeed = 6;
     }
     if(playerEnergy > maxEnergy)
     {
         playerEnergy = maxEnergy;
     }
     if(playerEnergy < 0)
     {
         playerEnergy = 0;
     }
     
     energy.fillAmount = playerEnergy;
 }