import type { Hash } from './hashes.js';
import type { Filter } from './index.js';
export interface CuckooFilterInit {
    /**
     * How many items the filter is expected to contain
     */
    filterSize: number;
    /**
     * How many items to put in each bucket
     */
    bucketSize?: number;
    /**
     * How many bytes the fingerprint is expected to be
     */
    fingerprintSize?: number;
    /**
     * A non-cryptographic hash implementation
     */
    hash?: Hash;
    /**
     * A number used to seed the hash
     */
    seed?: number;
}
export declare class CuckooFilter implements Filter {
    private readonly bucketSize;
    private readonly filterSize;
    private readonly fingerprintSize;
    private readonly buckets;
    count: number;
    private readonly hash;
    private readonly seed;
    constructor(init: CuckooFilterInit);
    add(item: Uint8Array | string): boolean;
    has(item: Uint8Array | string): boolean;
    remove(item: Uint8Array | string): boolean;
    get reliable(): boolean;
}
export declare function optimize(maxItems: number, errorRate?: number): CuckooFilterInit;
export declare function createCuckooFilter(maxItems: number, errorRate?: number): Filter;
//# sourceMappingURL=cuckoo-filter.d.ts.map