///
import type { NearServiceClient } from './near.client.js';
import { NearAccount, StorageBalanceBounds, ViewFunctionRequest } from './types.js';
/**
* Near contract factory
*/
export declare class NearContractFactory {
readonly nearClient: NearServiceClient;
readonly ownerAccount?: NearAccount | undefined;
protected ownerSecret?: string | undefined;
protected ownerId?: string;
static readonly contractMethods: {
changeMethods: string[];
viewMethods: string[];
};
/**
* Enough balance to cover storage
*/
static readonly MIN_ATTACHED_BALANCE: bigint;
constructor(nearClient: NearServiceClient, ownerAccount?: NearAccount | undefined, ownerSecret?: string | undefined);
/**
* Create a guest account and add it to the token contract
* @param tokenContract - Token account id
* @param guestAccountId - Guest account id
* @param publicKey - Guest account public key
* @param guestsAccountSecret - Guests account private key
* @returns
*/
addGuest(tokenContract: string, guestAccountId: string, publicKey: string, guestsAccountSecret: string): Promise;
loadContract(name: string): Promise;
/**
* Look up or create a `guests` account
* @param guestsId - Guests account id
* @param guestsAccountSecret - Guests account private key
* @returns
*/
getOrCreateGuestsAccount(guestsId: string, guestsAccountSecret: string): Promise;
/**
* Calling a contract view function
* @param tokenContract
* @param methodName
* @param args
* @returns
*/
viewFunction(tokenContract: string, methodName: string, args?: object): Promise;
/**
* Calling a contract change function
* @param tokenContract
* @param methodName
* @param args
* @param gas
* @param amount
* @returns
*/
functionCall(tokenContract: string, methodName: string, args?: object, gas?: bigint, amount?: bigint, account?: NearAccount): Promise;
batchViewFunction(requests: ViewFunctionRequest[], concurrency?: number): Promise;
/**
* Get the minimum storage balance for the contract
* @param contract - Contract account
* @returns
*/
storageMinimumBalance(contract: string): Promise;
/**
* Get the storage balance bounds for the given contract
* @param contract - Contract account
* @returns
*/
storageBalanceBounds(contract: string): Promise;
/**
* Get the storage balance for the given account
* @param contract - Contract account
* @param accountId - Account id
* @returns
*/
storageBalanceOf(contract: string, accountId: string): Promise;
/**
* Deposit storage to the contract
* @param contract - Contract account
* @param amount - Amount to be deposited
* @param accountId - Account id, if not provided, it's the caller account
* @param registrationOnly - If `registration_only=true`, contract MUST
* refund above the minimum balance if the account wasn't registered and
* refund full deposit if already registered.
* @returns
*/
storageDeposit(contract: string, amount: bigint, accountId?: string, registrationOnly?: boolean): Promise;
/**
* Withdraw storage from the contract
* @param contract - Contract account
* @param amount - Amount to be withdrawn
* @returns
*/
storageWithdraw(contract: string, amount: bigint): Promise;
storageUnregister(contract: string, force?: boolean): Promise;
}