import { ValueType } from "./common.js";
import type { SupportedValue, TxObject, ValueContainer, ValueTypeToType } from "./common.js";
import type { PassportObject, PermissionObject } from "./common.js";
import type { Transaction } from "../transactions/index.js";
import type { ReceivedObjects } from "./query/received.js";
export declare const isValidValueContainer: <T extends ValueType>(container: ValueContainer<T>) => boolean;
export declare const valueToBcsBytes: <T extends ValueType>(valueType: T, value: ValueTypeToType[T]) => Promise<Uint8Array>;
export declare const bcsBytesToValue: <T extends ValueType>(bytes: Uint8Array, valueType?: T) => T extends undefined ? SupportedValue : ValueTypeToType[T];
export declare const parseObjectType: (chain_type: string | null | undefined, header?: string) => string | undefined;
export declare const parseTypeParameter: (type: string | null | undefined) => string | undefined;
export declare const extractCoinType: (type: string | null | undefined) => string | undefined;
export declare function owner_receive(tx: Transaction, object: TxObject, permission: PermissionObject, param: ReceivedObjects, caller_type: string | undefined, fnBuilder: (name: string) => string, passport?: PassportObject): Promise<void>;
export declare function permission_set(tx: Transaction, object: TxObject, old_permission: PermissionObject, new_permission: PermissionObject, caller_type: string | undefined, fnBuilder: (name: string) => string): void;
export declare const validObjects: (objects: (TxObject | undefined | null)[], allowNull?: boolean) => void;
export declare const uint2address: (value: number | bigint | string) => string;
export declare const parseRecipient: (whoData: any) => any;
