// package: cosmos.authz.v1beta1
// file: cosmos/authz/v1beta1/query.proto

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

import * as grpc from "grpc";
import * as cosmos_authz_v1beta1_query_pb from "../../../cosmos/authz/v1beta1/query_pb";
import * as cosmos_base_query_v1beta1_pagination_pb from "../../../cosmos/base/query/v1beta1/pagination_pb";
import * as cosmos_authz_v1beta1_authz_pb from "../../../cosmos/authz/v1beta1/authz_pb";
import * as cosmos_proto_cosmos_pb from "../../../cosmos_proto/cosmos_pb";

interface IQueryService extends grpc.ServiceDefinition<grpc.UntypedServiceImplementation> {
    grants: IQueryService_IGrants;
    granterGrants: IQueryService_IGranterGrants;
    granteeGrants: IQueryService_IGranteeGrants;
}

interface IQueryService_IGrants extends grpc.MethodDefinition<cosmos_authz_v1beta1_query_pb.QueryGrantsRequest, cosmos_authz_v1beta1_query_pb.QueryGrantsResponse> {
    path: "/cosmos.authz.v1beta1.Query/Grants";
    requestStream: false;
    responseStream: false;
    requestSerialize: grpc.serialize<cosmos_authz_v1beta1_query_pb.QueryGrantsRequest>;
    requestDeserialize: grpc.deserialize<cosmos_authz_v1beta1_query_pb.QueryGrantsRequest>;
    responseSerialize: grpc.serialize<cosmos_authz_v1beta1_query_pb.QueryGrantsResponse>;
    responseDeserialize: grpc.deserialize<cosmos_authz_v1beta1_query_pb.QueryGrantsResponse>;
}
interface IQueryService_IGranterGrants extends grpc.MethodDefinition<cosmos_authz_v1beta1_query_pb.QueryGranterGrantsRequest, cosmos_authz_v1beta1_query_pb.QueryGranterGrantsResponse> {
    path: "/cosmos.authz.v1beta1.Query/GranterGrants";
    requestStream: false;
    responseStream: false;
    requestSerialize: grpc.serialize<cosmos_authz_v1beta1_query_pb.QueryGranterGrantsRequest>;
    requestDeserialize: grpc.deserialize<cosmos_authz_v1beta1_query_pb.QueryGranterGrantsRequest>;
    responseSerialize: grpc.serialize<cosmos_authz_v1beta1_query_pb.QueryGranterGrantsResponse>;
    responseDeserialize: grpc.deserialize<cosmos_authz_v1beta1_query_pb.QueryGranterGrantsResponse>;
}
interface IQueryService_IGranteeGrants extends grpc.MethodDefinition<cosmos_authz_v1beta1_query_pb.QueryGranteeGrantsRequest, cosmos_authz_v1beta1_query_pb.QueryGranteeGrantsResponse> {
    path: "/cosmos.authz.v1beta1.Query/GranteeGrants";
    requestStream: false;
    responseStream: false;
    requestSerialize: grpc.serialize<cosmos_authz_v1beta1_query_pb.QueryGranteeGrantsRequest>;
    requestDeserialize: grpc.deserialize<cosmos_authz_v1beta1_query_pb.QueryGranteeGrantsRequest>;
    responseSerialize: grpc.serialize<cosmos_authz_v1beta1_query_pb.QueryGranteeGrantsResponse>;
    responseDeserialize: grpc.deserialize<cosmos_authz_v1beta1_query_pb.QueryGranteeGrantsResponse>;
}

export const QueryService: IQueryService;

export interface IQueryServer {
    grants: grpc.handleUnaryCall<cosmos_authz_v1beta1_query_pb.QueryGrantsRequest, cosmos_authz_v1beta1_query_pb.QueryGrantsResponse>;
    granterGrants: grpc.handleUnaryCall<cosmos_authz_v1beta1_query_pb.QueryGranterGrantsRequest, cosmos_authz_v1beta1_query_pb.QueryGranterGrantsResponse>;
    granteeGrants: grpc.handleUnaryCall<cosmos_authz_v1beta1_query_pb.QueryGranteeGrantsRequest, cosmos_authz_v1beta1_query_pb.QueryGranteeGrantsResponse>;
}

export interface IQueryClient {
    grants(request: cosmos_authz_v1beta1_query_pb.QueryGrantsRequest, callback: (error: grpc.ServiceError | null, response: cosmos_authz_v1beta1_query_pb.QueryGrantsResponse) => void): grpc.ClientUnaryCall;
    grants(request: cosmos_authz_v1beta1_query_pb.QueryGrantsRequest, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: cosmos_authz_v1beta1_query_pb.QueryGrantsResponse) => void): grpc.ClientUnaryCall;
    grants(request: cosmos_authz_v1beta1_query_pb.QueryGrantsRequest, metadata: grpc.Metadata, options: Partial<grpc.CallOptions>, callback: (error: grpc.ServiceError | null, response: cosmos_authz_v1beta1_query_pb.QueryGrantsResponse) => void): grpc.ClientUnaryCall;
    granterGrants(request: cosmos_authz_v1beta1_query_pb.QueryGranterGrantsRequest, callback: (error: grpc.ServiceError | null, response: cosmos_authz_v1beta1_query_pb.QueryGranterGrantsResponse) => void): grpc.ClientUnaryCall;
    granterGrants(request: cosmos_authz_v1beta1_query_pb.QueryGranterGrantsRequest, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: cosmos_authz_v1beta1_query_pb.QueryGranterGrantsResponse) => void): grpc.ClientUnaryCall;
    granterGrants(request: cosmos_authz_v1beta1_query_pb.QueryGranterGrantsRequest, metadata: grpc.Metadata, options: Partial<grpc.CallOptions>, callback: (error: grpc.ServiceError | null, response: cosmos_authz_v1beta1_query_pb.QueryGranterGrantsResponse) => void): grpc.ClientUnaryCall;
    granteeGrants(request: cosmos_authz_v1beta1_query_pb.QueryGranteeGrantsRequest, callback: (error: grpc.ServiceError | null, response: cosmos_authz_v1beta1_query_pb.QueryGranteeGrantsResponse) => void): grpc.ClientUnaryCall;
    granteeGrants(request: cosmos_authz_v1beta1_query_pb.QueryGranteeGrantsRequest, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: cosmos_authz_v1beta1_query_pb.QueryGranteeGrantsResponse) => void): grpc.ClientUnaryCall;
    granteeGrants(request: cosmos_authz_v1beta1_query_pb.QueryGranteeGrantsRequest, metadata: grpc.Metadata, options: Partial<grpc.CallOptions>, callback: (error: grpc.ServiceError | null, response: cosmos_authz_v1beta1_query_pb.QueryGranteeGrantsResponse) => void): grpc.ClientUnaryCall;
}

export class QueryClient extends grpc.Client implements IQueryClient {
    constructor(address: string, credentials: grpc.ChannelCredentials, options?: object);
    public grants(request: cosmos_authz_v1beta1_query_pb.QueryGrantsRequest, callback: (error: grpc.ServiceError | null, response: cosmos_authz_v1beta1_query_pb.QueryGrantsResponse) => void): grpc.ClientUnaryCall;
    public grants(request: cosmos_authz_v1beta1_query_pb.QueryGrantsRequest, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: cosmos_authz_v1beta1_query_pb.QueryGrantsResponse) => void): grpc.ClientUnaryCall;
    public grants(request: cosmos_authz_v1beta1_query_pb.QueryGrantsRequest, metadata: grpc.Metadata, options: Partial<grpc.CallOptions>, callback: (error: grpc.ServiceError | null, response: cosmos_authz_v1beta1_query_pb.QueryGrantsResponse) => void): grpc.ClientUnaryCall;
    public granterGrants(request: cosmos_authz_v1beta1_query_pb.QueryGranterGrantsRequest, callback: (error: grpc.ServiceError | null, response: cosmos_authz_v1beta1_query_pb.QueryGranterGrantsResponse) => void): grpc.ClientUnaryCall;
    public granterGrants(request: cosmos_authz_v1beta1_query_pb.QueryGranterGrantsRequest, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: cosmos_authz_v1beta1_query_pb.QueryGranterGrantsResponse) => void): grpc.ClientUnaryCall;
    public granterGrants(request: cosmos_authz_v1beta1_query_pb.QueryGranterGrantsRequest, metadata: grpc.Metadata, options: Partial<grpc.CallOptions>, callback: (error: grpc.ServiceError | null, response: cosmos_authz_v1beta1_query_pb.QueryGranterGrantsResponse) => void): grpc.ClientUnaryCall;
    public granteeGrants(request: cosmos_authz_v1beta1_query_pb.QueryGranteeGrantsRequest, callback: (error: grpc.ServiceError | null, response: cosmos_authz_v1beta1_query_pb.QueryGranteeGrantsResponse) => void): grpc.ClientUnaryCall;
    public granteeGrants(request: cosmos_authz_v1beta1_query_pb.QueryGranteeGrantsRequest, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: cosmos_authz_v1beta1_query_pb.QueryGranteeGrantsResponse) => void): grpc.ClientUnaryCall;
    public granteeGrants(request: cosmos_authz_v1beta1_query_pb.QueryGranteeGrantsRequest, metadata: grpc.Metadata, options: Partial<grpc.CallOptions>, callback: (error: grpc.ServiceError | null, response: cosmos_authz_v1beta1_query_pb.QueryGranteeGrantsResponse) => void): grpc.ClientUnaryCall;
}
