import { ServiceType } from "@protobuf-ts/runtime-rpc";
import { MessageType } from "@protobuf-ts/runtime";
import { Bcs } from "./bcs.js";
import { Object } from "./object.js";
import { FieldMask } from "../../../google/protobuf/field_mask.js";
export interface GetCoinInfoRequest {
    coinType?: string;
}
export interface GetCoinInfoResponse {
    coinType?: string;
    metadata?: CoinMetadata;
    treasury?: CoinTreasury;
    regulatedMetadata?: RegulatedCoinMetadata;
}
export interface CoinMetadata {
    id?: string;
    decimals?: number;
    name?: string;
    symbol?: string;
    description?: string;
    iconUrl?: string;
    metadataCapId?: string;
    metadataCapState?: CoinMetadata_MetadataCapState;
}
export declare enum CoinMetadata_MetadataCapState {
    METADATA_CAP_STATE_UNKNOWN = 0,
    CLAIMED = 1,
    UNCLAIMED = 2,
    DELETED = 3
}
export interface CoinTreasury {
    id?: string;
    totalSupply?: bigint;
    supplyState?: CoinTreasury_SupplyState;
}
export declare enum CoinTreasury_SupplyState {
    SUPPLY_STATE_UNKNOWN = 0,
    FIXED = 1,
    BURN_ONLY = 2
}
export interface RegulatedCoinMetadata {
    id?: string;
    coinMetadataObject?: string;
    denyCapObject?: string;
    allowGlobalPause?: boolean;
    variant?: number;
    coinRegulatedState?: RegulatedCoinMetadata_CoinRegulatedState;
}
export declare enum RegulatedCoinMetadata_CoinRegulatedState {
    COIN_REGULATED_STATE_UNKNOWN = 0,
    REGULATED = 1,
    UNREGULATED = 2
}
export interface GetBalanceRequest {
    owner?: string;
    coinType?: string;
}
export interface GetBalanceResponse {
    balance?: Balance;
}
export interface ListBalancesRequest {
    owner?: string;
    pageSize?: number;
    pageToken?: Uint8Array;
}
export interface ListBalancesResponse {
    balances: Balance[];
    nextPageToken?: Uint8Array;
}
export interface Balance {
    coinType?: string;
    balance?: bigint;
}
export interface ListDynamicFieldsRequest {
    parent?: string;
    pageSize?: number;
    pageToken?: Uint8Array;
    readMask?: FieldMask;
}
export interface ListDynamicFieldsResponse {
    dynamicFields: DynamicField[];
    nextPageToken?: Uint8Array;
}
export interface DynamicField {
    kind?: DynamicField_DynamicFieldKind;
    parent?: string;
    fieldId?: string;
    fieldObject?: Object;
    name?: Bcs;
    value?: Bcs;
    valueType?: string;
    childId?: string;
    childObject?: Object;
}
export declare enum DynamicField_DynamicFieldKind {
    DYNAMIC_FIELD_KIND_UNKNOWN = 0,
    FIELD = 1,
    OBJECT = 2
}
export interface ListOwnedObjectsRequest {
    owner?: string;
    pageSize?: number;
    pageToken?: Uint8Array;
    readMask?: FieldMask;
    objectType?: string;
}
export interface ListOwnedObjectsResponse {
    objects: Object[];
    nextPageToken?: Uint8Array;
}
declare class GetCoinInfoRequest$Type extends MessageType<GetCoinInfoRequest> {
    constructor();
}
export declare const GetCoinInfoRequest: GetCoinInfoRequest$Type;
declare class GetCoinInfoResponse$Type extends MessageType<GetCoinInfoResponse> {
    constructor();
}
export declare const GetCoinInfoResponse: GetCoinInfoResponse$Type;
declare class CoinMetadata$Type extends MessageType<CoinMetadata> {
    constructor();
}
export declare const CoinMetadata: CoinMetadata$Type;
declare class CoinTreasury$Type extends MessageType<CoinTreasury> {
    constructor();
}
export declare const CoinTreasury: CoinTreasury$Type;
declare class RegulatedCoinMetadata$Type extends MessageType<RegulatedCoinMetadata> {
    constructor();
}
export declare const RegulatedCoinMetadata: RegulatedCoinMetadata$Type;
declare class GetBalanceRequest$Type extends MessageType<GetBalanceRequest> {
    constructor();
}
export declare const GetBalanceRequest: GetBalanceRequest$Type;
declare class GetBalanceResponse$Type extends MessageType<GetBalanceResponse> {
    constructor();
}
export declare const GetBalanceResponse: GetBalanceResponse$Type;
declare class ListBalancesRequest$Type extends MessageType<ListBalancesRequest> {
    constructor();
}
export declare const ListBalancesRequest: ListBalancesRequest$Type;
declare class ListBalancesResponse$Type extends MessageType<ListBalancesResponse> {
    constructor();
}
export declare const ListBalancesResponse: ListBalancesResponse$Type;
declare class Balance$Type extends MessageType<Balance> {
    constructor();
}
export declare const Balance: Balance$Type;
declare class ListDynamicFieldsRequest$Type extends MessageType<ListDynamicFieldsRequest> {
    constructor();
}
export declare const ListDynamicFieldsRequest: ListDynamicFieldsRequest$Type;
declare class ListDynamicFieldsResponse$Type extends MessageType<ListDynamicFieldsResponse> {
    constructor();
}
export declare const ListDynamicFieldsResponse: ListDynamicFieldsResponse$Type;
declare class DynamicField$Type extends MessageType<DynamicField> {
    constructor();
}
export declare const DynamicField: DynamicField$Type;
declare class ListOwnedObjectsRequest$Type extends MessageType<ListOwnedObjectsRequest> {
    constructor();
}
export declare const ListOwnedObjectsRequest: ListOwnedObjectsRequest$Type;
declare class ListOwnedObjectsResponse$Type extends MessageType<ListOwnedObjectsResponse> {
    constructor();
}
export declare const ListOwnedObjectsResponse: ListOwnedObjectsResponse$Type;
export declare const StateService: ServiceType;
export {};
