/**
 * Node.js (TypeScript) bindings for Native C EllipticPIR library interface.
 */
import { EpirBase, EpirCreateFunction, DecryptionContextCreateFunction, SelectorFactoryBase } from './types';
export declare const createDecryptionContext: DecryptionContextCreateFunction;
declare class SelectorFactoryNapi {
    constructor(isFast: boolean, key: ArrayBuffer, capacityZero: number, capacityOne: number);
    fill: () => Promise<void>;
    create: (indexCounts: number[], idx: number) => ArrayBuffer;
}
export declare class SelectorFactory extends SelectorFactoryBase {
    readonly isFast: boolean;
    readonly key: ArrayBuffer;
    readonly capacities: number[];
    napi: SelectorFactoryNapi;
    constructor(isFast: boolean, key: ArrayBuffer, capacities?: number[]);
    fill(): Promise<void>;
    create(indexCounts: number[], idx: number, refill?: boolean): ArrayBuffer;
}
export declare class Epir implements EpirBase {
    createPrivkey(): ArrayBuffer;
    createPubkey(privkey: ArrayBuffer): ArrayBuffer;
    encrypt(pubkey: ArrayBuffer, msg: number, r?: ArrayBuffer): ArrayBuffer;
    encryptFast(privkey: ArrayBuffer, msg: number, r?: ArrayBuffer): ArrayBuffer;
    ciphersCount(index_counts: number[]): number;
    elementsCount(index_counts: number[]): number;
    createSelector(pubkey: ArrayBuffer, index_counts: number[], idx: number, r?: ArrayBuffer): Promise<ArrayBuffer>;
    createSelectorFast(privkey: ArrayBuffer, index_counts: number[], idx: number, r?: ArrayBuffer): Promise<ArrayBuffer>;
    computeReplySize(dimension: number, packing: number, elem_size: number): number;
    computeReplyRCount(dimension: number, packing: number, elem_size: number): number;
    computeReplyMock(pubkey: ArrayBuffer, dimension: number, packing: number, elem: ArrayBuffer, r?: ArrayBuffer): ArrayBuffer;
}
export declare const createEpir: EpirCreateFunction;
export {};
