// @generated by protobuf-ts 2.9.6
// @generated from protobuf file "notification.proto" (package "api", syntax proto3)
// tslint:disable
import type { RpcTransport } from "@protobuf-ts/runtime-rpc";
import type { ServiceInfo } from "@protobuf-ts/runtime-rpc";
import { NotificationService } from "./notification";
import type { ListNotificationResult } from "./notification";
import type { ListNotificationRequest } from "./notification";
import { stackIntercept } from "@protobuf-ts/runtime-rpc";
import type { PublishToUserResult } from "./notification";
import type { PublishToUserRequest } from "./notification";
import type { UnaryCall } from "@protobuf-ts/runtime-rpc";
import type { RpcOptions } from "@protobuf-ts/runtime-rpc";
/**
 * @generated from protobuf service api.NotificationService
 */
export interface INotificationServiceClient {
    /**
     * @generated from protobuf rpc: PublishToUser(api.PublishToUserRequest) returns (api.PublishToUserResult);
     */
    publishToUser(input: PublishToUserRequest, options?: RpcOptions): UnaryCall<PublishToUserRequest, PublishToUserResult>;
    /**
     * @generated from protobuf rpc: List(api.ListNotificationRequest) returns (api.ListNotificationResult);
     */
    list(input: ListNotificationRequest, options?: RpcOptions): UnaryCall<ListNotificationRequest, ListNotificationResult>;
}
/**
 * @generated from protobuf service api.NotificationService
 */
export class NotificationServiceClient implements INotificationServiceClient, ServiceInfo {
    typeName = NotificationService.typeName;
    methods = NotificationService.methods;
    options = NotificationService.options;
    constructor(private readonly _transport: RpcTransport) {
    }
    /**
     * @generated from protobuf rpc: PublishToUser(api.PublishToUserRequest) returns (api.PublishToUserResult);
     */
    publishToUser(input: PublishToUserRequest, options?: RpcOptions): UnaryCall<PublishToUserRequest, PublishToUserResult> {
        const method = this.methods[0], opt = this._transport.mergeOptions(options);
        return stackIntercept<PublishToUserRequest, PublishToUserResult>("unary", this._transport, method, opt, input);
    }
    /**
     * @generated from protobuf rpc: List(api.ListNotificationRequest) returns (api.ListNotificationResult);
     */
    list(input: ListNotificationRequest, options?: RpcOptions): UnaryCall<ListNotificationRequest, ListNotificationResult> {
        const method = this.methods[1], opt = this._transport.mergeOptions(options);
        return stackIntercept<ListNotificationRequest, ListNotificationResult>("unary", this._transport, method, opt, input);
    }
}
