///
import { Address, Cell, TupleItem } from "ton-core";
export type GetMethodArgs = {
code: Cell;
data: Cell;
methodId: number;
stack: TupleItem[];
config: Cell;
verbosity: ExecutorVerbosity;
libs?: Cell;
address: Address;
unixTime: number;
balance: bigint;
randomSeed: Buffer;
gasLimit: bigint;
};
export type GetMethodResultSuccess = {
success: true;
stack: string;
gas_used: string;
vm_exit_code: number;
vm_log: string;
c7: string;
missing_library: string | null;
};
export type GetMethodResultError = {
success: false;
error: string;
};
export type GetMethodResult = {
output: GetMethodResultSuccess | GetMethodResultError;
logs: string;
};
export type RunTransactionArgs = {
config: Cell;
libs: Cell | null;
verbosity: ExecutorVerbosity;
shardAccount: Cell;
message: Cell;
now: number;
lt: bigint;
randomSeed: Buffer | null;
};
export type ExecutorVerbosity = 'short' | 'full' | 'full_location' | 'full_location_stack';
export type EmulationResultSuccess = {
success: true;
transaction: string;
shardAccount: string;
vmLog: string;
c7: string | null;
actions: string | null;
};
export type VMResults = {
vmLog: string;
vmExitCode: number;
};
export type EmulationResultError = {
success: false;
error: string;
vmResults?: VMResults;
};
export type EmulationResult = {
result: EmulationResultSuccess | EmulationResultError;
logs: string;
};
export declare class Executor {
private module;
private heap;
private emulator?;
private constructor();
static create(): Promise;
runGetMethod(args: GetMethodArgs): GetMethodResult;
runTransaction(args: RunTransactionArgs): EmulationResult;
private createEmulator;
private getEmulatorPointer;
invoke(method: string, args: (number | string)[]): number;
private extractString;
}