Expected }, but its already there?

using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public Interface IDamageable
{

public void Damage(float damage);

}

it says error CS1513: } expected
but its already at the end, even in visual studio it recognizes it!
(sorry if the text looks confusing)

The error message you were provided is odd, since there was a specific problem, and that wasn’t it.

The more appropriate error message to see would have been:

The modifier ‘public’ is not valid for this item

With that in mind, some useful reading on the subject can be found here.

Additionally (prior to C# 8), an interface can only contain public functions.

By extension, an interface itself can only be public if it’s external to another class.

public class Test : ITest1
{
	// This must be public to fulfill Interface requirements
	public void Func(float value)
	{
		// Implementation
	}
}

public interface ITest1 // MUST BE PUBLIC
{
	// The function template must *not* specify accessibility
	// and will always need to be used as "public" in a class
	void Func(float value);
}

… or, to demonstrate private interface implementation…

public class TestBase
{
	private class Subclass : ITest2
	{
		public void Func(float value)
		{
			// Implementation
		}
	}
	
	// This *CAN* be private because it's contained within a class
	private interface ITest2
	{
		// This still must not specify accessibility,
		// and will still be "public"
		void Func(float value);
	}
}

public void Damage(float damage) { }

You’re declaring a method like a variable.