import type { AnyCell, MapCell, SheetProxy } from "@okcontract/cells";
import { type AnyTokenQuery, type ContractQueryType, type OKToken } from "@okcontract/coredata";
import type { Address, ChainAddress, ChainType, Network } from "@okcontract/multichain";
/**
 * token_address returns the address for the token on current chain.
 * @param ch the chain
 * @param tok the OKToken
 * @param px to return px if found
 */
export declare const token_address: (proxy: SheetProxy, ch: AnyCell<ChainType>, tok: AnyCell<OKToken>, px?: boolean) => MapCell<Address<Network> | null, false>;
/**
 * get_token_on_chain returns the OKToken for a given chain
 * @param ch
 * @param tok
 * @returns
 */
export declare const get_token_on_chain: (ch: ChainType, tok: OKToken) => ChainAddress<"evm">;
/**
 * token_evm_address returns the address for the token on the desired chain as ChainAddress.
 * @param ch
 * @param token
 * @returns
 */
export declare const token_evm_address: (proxy: SheetProxy, ch: AnyCell<ChainType>, token: AnyCell<OKToken>) => MapCell<ChainAddress | null, false>;
export declare const ABIUpdateContractQuery: (org: string, id: string) => `\u03C7abup:${string}`;
export declare const ABIUpdateTokenQuery: (q: AnyTokenQuery) => `\u03C7aupt:${string}`;
export declare const ABIUpdateQuery: (query: ContractQueryType | AnyTokenQuery) => `\u03C7abup:${string}` | `\u03C7aupt:${string}`;
