import { ProviderRpcClient } from "everscale-inpage-provider";
import { AllowedCodes, TraceParams } from "./types";
import { Factory } from "../factory";
import { TracingInternal } from "./tracingInternal";
import { Transactions } from "../../utils";
import { TransactionParameter } from "../../types";
import { ViewTracingTree } from "./viewTraceTree/viewTracingTree";
import { TracingTransport } from "./transport";
import { LockliftNetwork } from "@broxus/locklift-network";
export declare class Tracing {
    private readonly ever;
    private readonly tracingInternal;
    private readonly features;
    private readonly network;
    constructor(ever: ProviderRpcClient, tracingInternal: TracingInternal, features: Transactions, network: LockliftNetwork);
    setContractLabels: TracingInternal["setContractLabels"];
    saveContract: TracingInternal["saveContract"];
    trace: <T extends TransactionParameter>(transactionProm: T | Promise<T>, config?: Omit<TraceParams<T>, "finalizedTx"> | undefined) => Promise<T & {
        traceTree: ViewTracingTree | undefined;
    }>;
    get allowedCodes(): AllowedCodes;
    setAllowedCodes: (allowedCodes: import("./types").OptionalContracts) => void;
    setAllowedCodesForAddress: (address: string | import("everscale-inpage-provider").Address, allowedCodes: import("./types").OptionalContracts) => void;
    removeAllowedCodesForAddress: (address: string | import("everscale-inpage-provider").Address, codesToRemove: import("./types").OptionalContracts) => void;
    removeAllowedCodes: (codesToRemove: import("./types").OptionalContracts) => void;
}
export declare const createTracing: ({ ever, factory, features, tracingTransport, network, }: {
    ever: ProviderRpcClient;
    factory: Factory<any>;
    features: Transactions;
    tracingTransport: TracingTransport;
    network: LockliftNetwork;
}) => Tracing;
