import { IHinkal } from '../../data-structures/Hinkal/IHinkal';
import { DecodedTx } from '../../types/transactions.types';
import { EncryptedOutputWithSign } from '../../types/commitments.types';
export interface HinkalCacheInterface {
    encryptedOutputs: EncryptedOutputWithSign[];
    lastOutput: string;
}
export declare const getFilePath: (chainId: number, shortPublicKey: string, shortHinkalAddress: string) => string;
export declare const getHinkalCache: (hinkal: IHinkal, chainId: number, shieldedPublicKey: string) => HinkalCacheInterface;
export declare const setHinkalCache: (hinkalCache: HinkalCacheInterface, hinkal: IHinkal, chainId: number, shieldedPublicKey: string) => void;
export declare const resetCache: (hinkal: IHinkal, chainId: number, shieldedPublicKey: string) => void;
export declare const saveTxsCache: (txs: DecodedTx[], chainId: number, shieldedPublicKey: string, hinkalAddress: string, lastHash: string, hinkal: IHinkal) => Promise<void>;
export declare const loadTxsCache: (chainId: number, shieldedPublicKey: string, hinkalAddress: string, hinkal: IHinkal) => Promise<{
    decodedTxs: import('../..').DecodedTxWithUtxos<bigint, bigint>[];
    lastHash: string | undefined;
}>;
export declare const getInHinkalAddressesFilePath: (chainId: number, shortPublicKey: string, shortHinkalAddress: string) => string;
export declare const setInHinkalAddressesCache: (hinkalCache: Record<string, string>, hinkal: IHinkal, chainId: number, shieldedPublicKey: string) => void;
export declare const getInHinkalAddressesCache: (hinkal: IHinkal, chainId: number, shieldedPublicKey: string) => Record<string, string>;
export declare const resetInHinkalAddressesCache: (hinkal: IHinkal, chainId: number, shieldedPublicKey: string) => void;
