import * as nt from "nekoton-wasm";
import { Address, FullContractState } from "everscale-inpage-provider";
import { BlockchainConfig } from "nekoton-wasm";
import { AccountFetcherCallback } from "../types";
interface LockliftTransport {
    getBlockchainConfig(): Promise<BlockchainConfig>;
    setExecutor(executor: LockliftExecutor): void;
}
export declare class LockliftExecutor {
    private readonly transport;
    private readonly accountFetcherCallback?;
    private state;
    private snapshots;
    private nonce;
    private blockchainConfig;
    private globalId;
    private clock;
    constructor(transport: LockliftTransport, accountFetcherCallback?: AccountFetcherCallback | undefined);
    private createInitialBlockchainState;
    initialize(): Promise<void>;
    setClock(clock: nt.ClockWithOffset): void;
    _setAccount(address: Address | string, boc: string): void;
    setAccount(address: Address | string, boc: string, type: "accountStuffBoc" | "fullAccountBoc"): void;
    getAccount(address: Address | string): Promise<FullContractState | undefined>;
    getAccounts(): {
        [id: string]: FullContractState;
    };
    getTxTrace(txId: string): nt.EngineTraceInfo[] | undefined;
    private saveTransaction;
    getDstTransaction(msgHash: string): nt.JsRawTransaction | undefined;
    getTransaction(id: string): nt.JsRawTransaction | undefined;
    getTransactions(address: Address | string, fromLt: string, count: number): nt.JsRawTransaction[];
    saveSnapshot(): number;
    loadSnapshot(id: number): void;
    clearSnapshots(): void;
    resetBlockchainState(): void;
    processQueue(): Promise<void>;
    processNextMsg(): Promise<void>;
    enqueueMsg(message: nt.JsRawMessage): void;
}
export {};
