import { MerkleTreeJson } from '../data-structures/merkle-tree/MerkleTree';
import { SenderAddressIndexMapJson } from '../data-structures/event-service';
import { EncryptedOutputWithCommitment, EncryptedOutputWithSign } from '../types';
export interface ICommitmentsTreeSnapshot {
    merkleTree: MerkleTreeJson;
    latestBlockNumber: number;
    encryptedOutputs: EncryptedOutputWithSign<string>[];
    hinkalAddress: string;
    chainId: number;
    encryptedOutputsByCommitment: EncryptedOutputWithCommitment[];
}
export interface IAccessTokenTreeSnapshot {
    merkleTree: MerkleTreeJson;
    senderAddresses: string[];
    senderAddressIndexMap?: SenderAddressIndexMapJson;
    latestBlockNumber: number;
    accessTokenContractAddress: string;
    chainId: number;
}
export interface INullifiersSnapshot {
    nullifiers: string[];
    latestBlockNumber: number;
}
export interface ISnapshotsResponse {
    commitments: ICommitmentsTreeSnapshot;
    accessTokens: IAccessTokenTreeSnapshot;
    nullifiers: INullifiersSnapshot;
}
export declare const fetchSnapshots: (chainId: number) => Promise<ISnapshotsResponse>;
