// This is a generated file - do not edit.
//
// Generated from messaging.proto.

// @dart = 3.3

// ignore_for_file: annotate_overrides, camel_case_types, comment_references
// ignore_for_file: constant_identifier_names
// ignore_for_file: curly_braces_in_flow_control_structures
// ignore_for_file: deprecated_member_use_from_same_package, library_prefixes
// ignore_for_file: non_constant_identifier_names

import 'dart:async' as $async;
import 'dart:core' as $core;

import 'package:grpc/service_api.dart' as $grpc;
import 'package:protobuf/protobuf.dart' as $pb;

import 'messaging.pb.dart' as $0;

export 'messaging.pb.dart';

@$pb.GrpcServiceName('api.MessagingService')
class MessagingServiceClient extends $grpc.Client {
  /// The hostname for this service.
  static const $core.String defaultHost = '';

  /// OAuth scopes needed for the client.
  static const $core.List<$core.String> oauthScopes = [
    '',
  ];

  MessagingServiceClient(super.channel, {super.options, super.interceptors});

  $grpc.ResponseFuture<$0.SendSMSResponse> sendSMS($0.SendSMSRequest request, {$grpc.CallOptions? options,}) {
    return $createUnaryCall(_$sendSMS, request, options: options);
  }

  $grpc.ResponseFuture<$0.GetMessagingUsageResponse> getUsage($0.GetMessagingUsageRequest request, {$grpc.CallOptions? options,}) {
    return $createUnaryCall(_$getUsage, request, options: options);
  }

  $grpc.ResponseFuture<$0.IsMessagingMaxUsageReachedResponse> isMaxUsageReached($0.IsMessagingMaxUsageReachedRequest request, {$grpc.CallOptions? options,}) {
    return $createUnaryCall(_$isMaxUsageReached, request, options: options);
  }

  $grpc.ResponseFuture<$0.GetMessagingUsageResponse> getPeriodUsage($0.GetMessagingPeriodUsageRequest request, {$grpc.CallOptions? options,}) {
    return $createUnaryCall(_$getPeriodUsage, request, options: options);
  }

    // method descriptors

  static final _$sendSMS = $grpc.ClientMethod<$0.SendSMSRequest, $0.SendSMSResponse>(
      '/api.MessagingService/SendSMS',
      ($0.SendSMSRequest value) => value.writeToBuffer(),
      $0.SendSMSResponse.fromBuffer);
  static final _$getUsage = $grpc.ClientMethod<$0.GetMessagingUsageRequest, $0.GetMessagingUsageResponse>(
      '/api.MessagingService/GetUsage',
      ($0.GetMessagingUsageRequest value) => value.writeToBuffer(),
      $0.GetMessagingUsageResponse.fromBuffer);
  static final _$isMaxUsageReached = $grpc.ClientMethod<$0.IsMessagingMaxUsageReachedRequest, $0.IsMessagingMaxUsageReachedResponse>(
      '/api.MessagingService/IsMaxUsageReached',
      ($0.IsMessagingMaxUsageReachedRequest value) => value.writeToBuffer(),
      $0.IsMessagingMaxUsageReachedResponse.fromBuffer);
  static final _$getPeriodUsage = $grpc.ClientMethod<$0.GetMessagingPeriodUsageRequest, $0.GetMessagingUsageResponse>(
      '/api.MessagingService/GetPeriodUsage',
      ($0.GetMessagingPeriodUsageRequest value) => value.writeToBuffer(),
      $0.GetMessagingUsageResponse.fromBuffer);
}

@$pb.GrpcServiceName('api.MessagingService')
abstract class MessagingServiceBase extends $grpc.Service {
  $core.String get $name => 'api.MessagingService';

  MessagingServiceBase() {
    $addMethod($grpc.ServiceMethod<$0.SendSMSRequest, $0.SendSMSResponse>(
        'SendSMS',
        sendSMS_Pre,
        false,
        false,
        ($core.List<$core.int> value) => $0.SendSMSRequest.fromBuffer(value),
        ($0.SendSMSResponse value) => value.writeToBuffer()));
    $addMethod($grpc.ServiceMethod<$0.GetMessagingUsageRequest, $0.GetMessagingUsageResponse>(
        'GetUsage',
        getUsage_Pre,
        false,
        false,
        ($core.List<$core.int> value) => $0.GetMessagingUsageRequest.fromBuffer(value),
        ($0.GetMessagingUsageResponse value) => value.writeToBuffer()));
    $addMethod($grpc.ServiceMethod<$0.IsMessagingMaxUsageReachedRequest, $0.IsMessagingMaxUsageReachedResponse>(
        'IsMaxUsageReached',
        isMaxUsageReached_Pre,
        false,
        false,
        ($core.List<$core.int> value) => $0.IsMessagingMaxUsageReachedRequest.fromBuffer(value),
        ($0.IsMessagingMaxUsageReachedResponse value) => value.writeToBuffer()));
    $addMethod($grpc.ServiceMethod<$0.GetMessagingPeriodUsageRequest, $0.GetMessagingUsageResponse>(
        'GetPeriodUsage',
        getPeriodUsage_Pre,
        false,
        false,
        ($core.List<$core.int> value) => $0.GetMessagingPeriodUsageRequest.fromBuffer(value),
        ($0.GetMessagingUsageResponse value) => value.writeToBuffer()));
  }

  $async.Future<$0.SendSMSResponse> sendSMS_Pre($grpc.ServiceCall $call, $async.Future<$0.SendSMSRequest> $request) async {
    return sendSMS($call, await $request);
  }

  $async.Future<$0.SendSMSResponse> sendSMS($grpc.ServiceCall call, $0.SendSMSRequest request);

  $async.Future<$0.GetMessagingUsageResponse> getUsage_Pre($grpc.ServiceCall $call, $async.Future<$0.GetMessagingUsageRequest> $request) async {
    return getUsage($call, await $request);
  }

  $async.Future<$0.GetMessagingUsageResponse> getUsage($grpc.ServiceCall call, $0.GetMessagingUsageRequest request);

  $async.Future<$0.IsMessagingMaxUsageReachedResponse> isMaxUsageReached_Pre($grpc.ServiceCall $call, $async.Future<$0.IsMessagingMaxUsageReachedRequest> $request) async {
    return isMaxUsageReached($call, await $request);
  }

  $async.Future<$0.IsMessagingMaxUsageReachedResponse> isMaxUsageReached($grpc.ServiceCall call, $0.IsMessagingMaxUsageReachedRequest request);

  $async.Future<$0.GetMessagingUsageResponse> getPeriodUsage_Pre($grpc.ServiceCall $call, $async.Future<$0.GetMessagingPeriodUsageRequest> $request) async {
    return getPeriodUsage($call, await $request);
  }

  $async.Future<$0.GetMessagingUsageResponse> getPeriodUsage($grpc.ServiceCall call, $0.GetMessagingPeriodUsageRequest request);

}
