// Copyright (c) Mysten Labs, Inc.
// SPDX-License-Identifier: Apache-2.0

// @generated by protobuf-ts 2.9.6 with parameter force_server_none,optimize_code_size,ts_nocheck
// @generated from protobuf file "sui/rpc/v2/state_service.proto" (package "sui.rpc.v2", syntax proto3)
// tslint:disable
// @ts-nocheck
//
// Copyright (c) Mysten Labs, Inc.
// SPDX-License-Identifier: Apache-2.0
//
import type { RpcTransport } from '@protobuf-ts/runtime-rpc';
import type { ServiceInfo } from '@protobuf-ts/runtime-rpc';
import { StateService } from './state_service.js';
import type { ListBalancesResponse } from './state_service.js';
import type { ListBalancesRequest } from './state_service.js';
import type { GetBalanceResponse } from './state_service.js';
import type { GetBalanceRequest } from './state_service.js';
import type { GetCoinInfoResponse } from './state_service.js';
import type { GetCoinInfoRequest } from './state_service.js';
import type { ListOwnedObjectsResponse } from './state_service.js';
import type { ListOwnedObjectsRequest } from './state_service.js';
import { stackIntercept } from '@protobuf-ts/runtime-rpc';
import type { ListDynamicFieldsResponse } from './state_service.js';
import type { ListDynamicFieldsRequest } from './state_service.js';
import type { UnaryCall } from '@protobuf-ts/runtime-rpc';
import type { RpcOptions } from '@protobuf-ts/runtime-rpc';
/**
 * @generated from protobuf service sui.rpc.v2.StateService
 */
export interface IStateServiceClient {
	/**
	 * @generated from protobuf rpc: ListDynamicFields(sui.rpc.v2.ListDynamicFieldsRequest) returns (sui.rpc.v2.ListDynamicFieldsResponse);
	 */
	listDynamicFields(
		input: ListDynamicFieldsRequest,
		options?: RpcOptions,
	): UnaryCall<ListDynamicFieldsRequest, ListDynamicFieldsResponse>;
	/**
	 * @generated from protobuf rpc: ListOwnedObjects(sui.rpc.v2.ListOwnedObjectsRequest) returns (sui.rpc.v2.ListOwnedObjectsResponse);
	 */
	listOwnedObjects(
		input: ListOwnedObjectsRequest,
		options?: RpcOptions,
	): UnaryCall<ListOwnedObjectsRequest, ListOwnedObjectsResponse>;
	/**
	 * @generated from protobuf rpc: GetCoinInfo(sui.rpc.v2.GetCoinInfoRequest) returns (sui.rpc.v2.GetCoinInfoResponse);
	 */
	getCoinInfo(
		input: GetCoinInfoRequest,
		options?: RpcOptions,
	): UnaryCall<GetCoinInfoRequest, GetCoinInfoResponse>;
	/**
	 * @generated from protobuf rpc: GetBalance(sui.rpc.v2.GetBalanceRequest) returns (sui.rpc.v2.GetBalanceResponse);
	 */
	getBalance(
		input: GetBalanceRequest,
		options?: RpcOptions,
	): UnaryCall<GetBalanceRequest, GetBalanceResponse>;
	/**
	 * @generated from protobuf rpc: ListBalances(sui.rpc.v2.ListBalancesRequest) returns (sui.rpc.v2.ListBalancesResponse);
	 */
	listBalances(
		input: ListBalancesRequest,
		options?: RpcOptions,
	): UnaryCall<ListBalancesRequest, ListBalancesResponse>;
}
/**
 * @generated from protobuf service sui.rpc.v2.StateService
 */
export class StateServiceClient implements IStateServiceClient, ServiceInfo {
	typeName = StateService.typeName;
	methods = StateService.methods;
	options = StateService.options;
	constructor(private readonly _transport: RpcTransport) {}
	/**
	 * @generated from protobuf rpc: ListDynamicFields(sui.rpc.v2.ListDynamicFieldsRequest) returns (sui.rpc.v2.ListDynamicFieldsResponse);
	 */
	listDynamicFields(
		input: ListDynamicFieldsRequest,
		options?: RpcOptions,
	): UnaryCall<ListDynamicFieldsRequest, ListDynamicFieldsResponse> {
		const method = this.methods[0],
			opt = this._transport.mergeOptions(options);
		return stackIntercept<ListDynamicFieldsRequest, ListDynamicFieldsResponse>(
			'unary',
			this._transport,
			method,
			opt,
			input,
		);
	}
	/**
	 * @generated from protobuf rpc: ListOwnedObjects(sui.rpc.v2.ListOwnedObjectsRequest) returns (sui.rpc.v2.ListOwnedObjectsResponse);
	 */
	listOwnedObjects(
		input: ListOwnedObjectsRequest,
		options?: RpcOptions,
	): UnaryCall<ListOwnedObjectsRequest, ListOwnedObjectsResponse> {
		const method = this.methods[1],
			opt = this._transport.mergeOptions(options);
		return stackIntercept<ListOwnedObjectsRequest, ListOwnedObjectsResponse>(
			'unary',
			this._transport,
			method,
			opt,
			input,
		);
	}
	/**
	 * @generated from protobuf rpc: GetCoinInfo(sui.rpc.v2.GetCoinInfoRequest) returns (sui.rpc.v2.GetCoinInfoResponse);
	 */
	getCoinInfo(
		input: GetCoinInfoRequest,
		options?: RpcOptions,
	): UnaryCall<GetCoinInfoRequest, GetCoinInfoResponse> {
		const method = this.methods[2],
			opt = this._transport.mergeOptions(options);
		return stackIntercept<GetCoinInfoRequest, GetCoinInfoResponse>(
			'unary',
			this._transport,
			method,
			opt,
			input,
		);
	}
	/**
	 * @generated from protobuf rpc: GetBalance(sui.rpc.v2.GetBalanceRequest) returns (sui.rpc.v2.GetBalanceResponse);
	 */
	getBalance(
		input: GetBalanceRequest,
		options?: RpcOptions,
	): UnaryCall<GetBalanceRequest, GetBalanceResponse> {
		const method = this.methods[3],
			opt = this._transport.mergeOptions(options);
		return stackIntercept<GetBalanceRequest, GetBalanceResponse>(
			'unary',
			this._transport,
			method,
			opt,
			input,
		);
	}
	/**
	 * @generated from protobuf rpc: ListBalances(sui.rpc.v2.ListBalancesRequest) returns (sui.rpc.v2.ListBalancesResponse);
	 */
	listBalances(
		input: ListBalancesRequest,
		options?: RpcOptions,
	): UnaryCall<ListBalancesRequest, ListBalancesResponse> {
		const method = this.methods[4],
			opt = this._transport.mergeOptions(options);
		return stackIntercept<ListBalancesRequest, ListBalancesResponse>(
			'unary',
			this._transport,
			method,
			opt,
			input,
		);
	}
}
