import { AccountFetcherCallback, AccountFetcherResponse } from "@broxus/locklift-network/src/types";
import { ForkContractsConfig, ForkSource } from "../../config";
export type ContractData = {
    contractName: string;
    abi: any;
    codeHash: string;
    abiPath: string;
};
export declare class ForkCacheService {
    private readonly forkSource;
    private currentCache;
    constructor(forkSource: ForkSource);
    getContractCache(address: string): AccountFetcherResponse | undefined;
    private getCacheKey;
    setNewContractToCache: (address: string, content: AccountFetcherResponse) => void;
}
export declare class ForkService {
    private readonly sourceFetcher;
    readonly preFetchedAccounts?: Array<ContractData> | undefined;
    private constructor();
    static init: ({ forkSource, forkContractsConfig, }: {
        forkContractsConfig: ForkContractsConfig;
        forkSource: ForkSource;
    }) => Promise<ForkService>;
    accountFetcher: AccountFetcherCallback;
}
