// <auto-generated>
/*
 * API ebike_v1 1.0.0
 *
 * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
 *
 * The version of the OpenAPI document: 1.0.0
 * Generated by: https://github.com/openapitools/openapi-generator.git
 */
#nullable enable

using System;
using System.Linq;
using System.Collections.Generic;
using Org.OpenAPITools.Client;

namespace Org.OpenAPITools
{
    /// <summary>
    /// A class which will provide tokens.
    /// </summary>
    public abstract class TokenProvider<TTokenBase> where TTokenBase : TokenBase
    {
        /// <summary>
        /// Gets a token asynchronously for the specified header.
        /// </summary>
        /// <param name="header">The header name to retrieve a token for. Empty string for non-API-key authentication schemes.</param>
        /// <param name="cancellation">Cancellation token for the asynchronous operation.</param>
        /// <returns>A task that returns the requested token.</returns>
        protected internal abstract System.Threading.Tasks.ValueTask<TTokenBase> GetAsync(string header = "", System.Threading.CancellationToken cancellation = default);
    }
}