// package: atc.v1
// file: atc/v1/game.proto

/* tslint:disable */
/* eslint-disable */

import * as grpc from "@grpc/grpc-js";
import * as atc_v1_game_pb from "../../atc/v1/game_pb";

interface IGameServiceService extends grpc.ServiceDefinition<grpc.UntypedServiceImplementation> {
    getGameState: IGameServiceService_IGetGameState;
    startGame: IGameServiceService_IStartGame;
}

interface IGameServiceService_IGetGameState extends grpc.MethodDefinition<atc_v1_game_pb.GetGameStateRequest, atc_v1_game_pb.GetGameStateResponse> {
    path: "/atc.v1.GameService/GetGameState";
    requestStream: false;
    responseStream: false;
    requestSerialize: grpc.serialize<atc_v1_game_pb.GetGameStateRequest>;
    requestDeserialize: grpc.deserialize<atc_v1_game_pb.GetGameStateRequest>;
    responseSerialize: grpc.serialize<atc_v1_game_pb.GetGameStateResponse>;
    responseDeserialize: grpc.deserialize<atc_v1_game_pb.GetGameStateResponse>;
}
interface IGameServiceService_IStartGame extends grpc.MethodDefinition<atc_v1_game_pb.StartGameRequest, atc_v1_game_pb.StartGameResponse> {
    path: "/atc.v1.GameService/StartGame";
    requestStream: false;
    responseStream: false;
    requestSerialize: grpc.serialize<atc_v1_game_pb.StartGameRequest>;
    requestDeserialize: grpc.deserialize<atc_v1_game_pb.StartGameRequest>;
    responseSerialize: grpc.serialize<atc_v1_game_pb.StartGameResponse>;
    responseDeserialize: grpc.deserialize<atc_v1_game_pb.StartGameResponse>;
}

export const GameServiceService: IGameServiceService;

export interface IGameServiceServer extends grpc.UntypedServiceImplementation {
    getGameState: grpc.handleUnaryCall<atc_v1_game_pb.GetGameStateRequest, atc_v1_game_pb.GetGameStateResponse>;
    startGame: grpc.handleUnaryCall<atc_v1_game_pb.StartGameRequest, atc_v1_game_pb.StartGameResponse>;
}

export interface IGameServiceClient {
    getGameState(request: atc_v1_game_pb.GetGameStateRequest, callback: (error: grpc.ServiceError | null, response: atc_v1_game_pb.GetGameStateResponse) => void): grpc.ClientUnaryCall;
    getGameState(request: atc_v1_game_pb.GetGameStateRequest, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: atc_v1_game_pb.GetGameStateResponse) => void): grpc.ClientUnaryCall;
    getGameState(request: atc_v1_game_pb.GetGameStateRequest, metadata: grpc.Metadata, options: Partial<grpc.CallOptions>, callback: (error: grpc.ServiceError | null, response: atc_v1_game_pb.GetGameStateResponse) => void): grpc.ClientUnaryCall;
    startGame(request: atc_v1_game_pb.StartGameRequest, callback: (error: grpc.ServiceError | null, response: atc_v1_game_pb.StartGameResponse) => void): grpc.ClientUnaryCall;
    startGame(request: atc_v1_game_pb.StartGameRequest, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: atc_v1_game_pb.StartGameResponse) => void): grpc.ClientUnaryCall;
    startGame(request: atc_v1_game_pb.StartGameRequest, metadata: grpc.Metadata, options: Partial<grpc.CallOptions>, callback: (error: grpc.ServiceError | null, response: atc_v1_game_pb.StartGameResponse) => void): grpc.ClientUnaryCall;
}

export class GameServiceClient extends grpc.Client implements IGameServiceClient {
    constructor(address: string, credentials: grpc.ChannelCredentials, options?: Partial<grpc.ClientOptions>);
    public getGameState(request: atc_v1_game_pb.GetGameStateRequest, callback: (error: grpc.ServiceError | null, response: atc_v1_game_pb.GetGameStateResponse) => void): grpc.ClientUnaryCall;
    public getGameState(request: atc_v1_game_pb.GetGameStateRequest, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: atc_v1_game_pb.GetGameStateResponse) => void): grpc.ClientUnaryCall;
    public getGameState(request: atc_v1_game_pb.GetGameStateRequest, metadata: grpc.Metadata, options: Partial<grpc.CallOptions>, callback: (error: grpc.ServiceError | null, response: atc_v1_game_pb.GetGameStateResponse) => void): grpc.ClientUnaryCall;
    public startGame(request: atc_v1_game_pb.StartGameRequest, callback: (error: grpc.ServiceError | null, response: atc_v1_game_pb.StartGameResponse) => void): grpc.ClientUnaryCall;
    public startGame(request: atc_v1_game_pb.StartGameRequest, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: atc_v1_game_pb.StartGameResponse) => void): grpc.ClientUnaryCall;
    public startGame(request: atc_v1_game_pb.StartGameRequest, metadata: grpc.Metadata, options: Partial<grpc.CallOptions>, callback: (error: grpc.ServiceError | null, response: atc_v1_game_pb.StartGameResponse) => void): grpc.ClientUnaryCall;
}
