// 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/owner.proto" (package "sui.rpc.v2", syntax proto3)
// tslint:disable
// @ts-nocheck
//
// Copyright (c) Mysten Labs, Inc.
// SPDX-License-Identifier: Apache-2.0
//
import { MessageType } from '@protobuf-ts/runtime';
/**
 * Enum of different types of ownership for an object.
 *
 * @generated from protobuf message sui.rpc.v2.Owner
 */
export interface Owner {
	/**
	 * @generated from protobuf field: optional sui.rpc.v2.Owner.OwnerKind kind = 1;
	 */
	kind?: Owner_OwnerKind;
	/**
	 * Address or ObjectId of the owner
	 *
	 * @generated from protobuf field: optional string address = 2;
	 */
	address?: string;
	/**
	 * The `initial_shared_version` if kind is `SHARED` or `start_version` if kind `CONSENSUS_ADDRESS`.
	 *
	 * @generated from protobuf field: optional uint64 version = 3;
	 */
	version?: bigint;
}
/**
 * @generated from protobuf enum sui.rpc.v2.Owner.OwnerKind
 */
export enum Owner_OwnerKind {
	/**
	 * @generated from protobuf enum value: OWNER_KIND_UNKNOWN = 0;
	 */
	OWNER_KIND_UNKNOWN = 0,
	/**
	 * @generated from protobuf enum value: ADDRESS = 1;
	 */
	ADDRESS = 1,
	/**
	 * @generated from protobuf enum value: OBJECT = 2;
	 */
	OBJECT = 2,
	/**
	 * @generated from protobuf enum value: SHARED = 3;
	 */
	SHARED = 3,
	/**
	 * @generated from protobuf enum value: IMMUTABLE = 4;
	 */
	IMMUTABLE = 4,
	/**
	 * @generated from protobuf enum value: CONSENSUS_ADDRESS = 5;
	 */
	CONSENSUS_ADDRESS = 5,
}
// @generated message type with reflection information, may provide speed optimized methods
class Owner$Type extends MessageType<Owner> {
	constructor() {
		super('sui.rpc.v2.Owner', [
			{
				no: 1,
				name: 'kind',
				kind: 'enum',
				opt: true,
				T: () => ['sui.rpc.v2.Owner.OwnerKind', Owner_OwnerKind],
			},
			{ no: 2, name: 'address', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },
			{
				no: 3,
				name: 'version',
				kind: 'scalar',
				opt: true,
				T: 4 /*ScalarType.UINT64*/,
				L: 0 /*LongType.BIGINT*/,
			},
		]);
	}
}
/**
 * @generated MessageType for protobuf message sui.rpc.v2.Owner
 */
export const Owner = new Owner$Type();
