//
//  Generated code. Do not modify.
//  source: notification.proto
//
// @dart = 3.3

// ignore_for_file: annotate_overrides, camel_case_types, comment_references
// ignore_for_file: constant_identifier_names, library_prefixes
// ignore_for_file: non_constant_identifier_names, prefer_final_fields
// ignore_for_file: unnecessary_import, unnecessary_this, unused_import

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 'notification.pb.dart' as $39;

export 'notification.pb.dart';

@$pb.GrpcServiceName('api.NotificationService')
class NotificationServiceClient extends $grpc.Client {
  static final _$publishToUser = $grpc.ClientMethod<$39.PublishToUserRequest, $39.PublishToUserResult>(
      '/api.NotificationService/PublishToUser',
      ($39.PublishToUserRequest value) => value.writeToBuffer(),
      ($core.List<$core.int> value) => $39.PublishToUserResult.fromBuffer(value));
  static final _$list = $grpc.ClientMethod<$39.ListNotificationRequest, $39.ListNotificationResult>(
      '/api.NotificationService/List',
      ($39.ListNotificationRequest value) => value.writeToBuffer(),
      ($core.List<$core.int> value) => $39.ListNotificationResult.fromBuffer(value));

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

  $grpc.ResponseFuture<$39.PublishToUserResult> publishToUser($39.PublishToUserRequest request, {$grpc.CallOptions? options}) {
    return $createUnaryCall(_$publishToUser, request, options: options);
  }

  $grpc.ResponseFuture<$39.ListNotificationResult> list($39.ListNotificationRequest request, {$grpc.CallOptions? options}) {
    return $createUnaryCall(_$list, request, options: options);
  }
}

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

  NotificationServiceBase() {
    $addMethod($grpc.ServiceMethod<$39.PublishToUserRequest, $39.PublishToUserResult>(
        'PublishToUser',
        publishToUser_Pre,
        false,
        false,
        ($core.List<$core.int> value) => $39.PublishToUserRequest.fromBuffer(value),
        ($39.PublishToUserResult value) => value.writeToBuffer()));
    $addMethod($grpc.ServiceMethod<$39.ListNotificationRequest, $39.ListNotificationResult>(
        'List',
        list_Pre,
        false,
        false,
        ($core.List<$core.int> value) => $39.ListNotificationRequest.fromBuffer(value),
        ($39.ListNotificationResult value) => value.writeToBuffer()));
  }

  $async.Future<$39.PublishToUserResult> publishToUser_Pre($grpc.ServiceCall $call, $async.Future<$39.PublishToUserRequest> $request) async {
    return publishToUser($call, await $request);
  }

  $async.Future<$39.ListNotificationResult> list_Pre($grpc.ServiceCall $call, $async.Future<$39.ListNotificationRequest> $request) async {
    return list($call, await $request);
  }

  $async.Future<$39.PublishToUserResult> publishToUser($grpc.ServiceCall call, $39.PublishToUserRequest request);
  $async.Future<$39.ListNotificationResult> list($grpc.ServiceCall call, $39.ListNotificationRequest request);
}
