// <auto-generated/>

#nullable disable

using System;
using System.ClientModel;
using System.ClientModel.Primitives;
using System.Diagnostics.CodeAnalysis;
using System.Threading;
using System.Threading.Tasks;

namespace _Type.Model.Usage
{
    public partial class UsageClient
    {
        public UsageClient() : this(new Uri("http://localhost:3000"), new UsageClientOptions()) => throw null;

        internal UsageClient(AuthenticationPolicy authenticationPolicy, Uri endpoint, UsageClientOptions options) => throw null;

        public UsageClient(Uri endpoint, UsageClientOptions options) : this(null, endpoint, options) => throw null;

        [Experimental("SCME0002")]
        public UsageClient(UsageClientSettings settings) : this(AuthenticationPolicy.Create(settings), settings?.Endpoint, settings?.Options) => throw null;

        public ClientPipeline Pipeline => throw null;

        public virtual ClientResult Input(BinaryContent content, RequestOptions options = null) => throw null;

        public virtual Task<ClientResult> InputAsync(BinaryContent content, RequestOptions options = null) => throw null;

        public virtual ClientResult Input(InputRecord input, CancellationToken cancellationToken = default) => throw null;

        public virtual Task<ClientResult> InputAsync(InputRecord input, CancellationToken cancellationToken = default) => throw null;

        public virtual ClientResult Output(RequestOptions options) => throw null;

        public virtual Task<ClientResult> OutputAsync(RequestOptions options) => throw null;

        public virtual ClientResult<OutputRecord> Output(CancellationToken cancellationToken = default) => throw null;

        public virtual Task<ClientResult<OutputRecord>> OutputAsync(CancellationToken cancellationToken = default) => throw null;

        public virtual ClientResult InputAndOutput(BinaryContent content, RequestOptions options = null) => throw null;

        public virtual Task<ClientResult> InputAndOutputAsync(BinaryContent content, RequestOptions options = null) => throw null;

        public virtual ClientResult<InputOutputRecord> InputAndOutput(InputOutputRecord body, CancellationToken cancellationToken = default) => throw null;

        public virtual Task<ClientResult<InputOutputRecord>> InputAndOutputAsync(InputOutputRecord body, CancellationToken cancellationToken = default) => throw null;
    }
}
