import { Proposal, Change, ResolvedValue, EAVN, EAVNField, Iterator, RoundArray } from "./runtime"; export interface Index { insert(change: Change): void; propose(proposal: Proposal, e: ResolvedValue, a: ResolvedValue, v: ResolvedValue, n: ResolvedValue, transaction: number, round: number): Proposal; resolveProposal(proposal: Proposal): any[][]; check(e: ResolvedValue, a: ResolvedValue, v: ResolvedValue, n: ResolvedValue, transaction: number, round: number): boolean; getDiffs(e: ResolvedValue, a: ResolvedValue, v: ResolvedValue, n: ResolvedValue): RoundArray; get(e: ResolvedValue, a: ResolvedValue, v: ResolvedValue, n: ResolvedValue, transaction: number, round: number): EAVN[]; } export declare class HashIndex implements Index { eavIndex: any; aveIndex: any; cardinality: number; getOrCreateHash(parent: any, key: any): any; getOrCreateArray(parent: any, key: any): any; roundArrayInsert(arr: RoundArray, change: Change): void; insert(change: Change): void; resolveProposal(proposal: Proposal): any; propose(proposal: Proposal, e: ResolvedValue, a: ResolvedValue, v: ResolvedValue, n: ResolvedValue, transaction: number, round: number): Proposal; walkPropose(proposal: Proposal, index: any, a: ResolvedValue, b: ResolvedValue, c: ResolvedValue, n: ResolvedValue, fieldB: EAVNField, fieldC: EAVNField, transaction: number, round: number): Proposal; walkCheck(index: any, a: ResolvedValue, b: ResolvedValue, c: ResolvedValue, n: ResolvedValue, transaction: number, round: number): boolean; check(e: ResolvedValue, a: ResolvedValue, v: ResolvedValue, n: ResolvedValue, transaction: number, round: number): boolean; walkGet(index: any, a: ResolvedValue, b: ResolvedValue, c: ResolvedValue, n: ResolvedValue, fieldB: EAVNField, fieldC: EAVNField, transaction: number, round: number): EAVN[]; get(e: ResolvedValue, a: ResolvedValue, v: ResolvedValue, n: ResolvedValue, transaction: number, round: number): EAVN[]; getDiffs(e: ResolvedValue, a: ResolvedValue, v: ResolvedValue, n: ResolvedValue): RoundArray; } export declare class BitMatrixIndex { insert(change: Change): void; propose(proposal: Proposal, e: ResolvedValue, a: ResolvedValue, v: ResolvedValue, n: ResolvedValue, transaction: number, round: number): Proposal; resolveProposal(proposal: Proposal): any[][]; check(e: ResolvedValue, a: ResolvedValue, v: ResolvedValue, n: ResolvedValue, transaction: number, round: number): boolean; getDiffs(e: ResolvedValue, a: ResolvedValue, v: ResolvedValue, n: ResolvedValue): RoundArray; get(e: ResolvedValue, a: ResolvedValue, v: ResolvedValue, n: ResolvedValue, transaction: number, round: number): EAVN[]; } export declare class DistinctIndex { index: { [key: string]: (number | undefined)[] | undefined; }; getDelta(last: number, next: number): number; shouldOutput(key: string, prefixRound: number, prefixCount: number): number[]; distinct(input: Change, results: Iterator): boolean; distinctKey(key: string, round: number, count: number, results: Iterator<[number, number]>): boolean; getCounts(change: Change): (number | undefined)[] | undefined; sanityCheck(): void; }