/// <reference types="node" />
import { Point } from "../.";
/**
 * Masks are used alongside with aggregated signatures to announce which peer
 * has actually signed the message. It's essentially a bit mask.
 */
export default class Mask {
    readonly publics: Point[];
    readonly aggregate: Point;
    private mask;
    constructor(publics: Point[], mask: Buffer);
    /**
     * Return the number of participants, in other words the number of 1s in the mask
     *
     * @return the number of participants
     */
    getCountEnabled(): number;
    /**
     * Return the total number of public keys assigned to the mask
     *
     * @return the total number of public keys
     */
    getCountTotal(): number;
    /**
     * Return true if the bit at the given index is enabled
     *
     * @param i The index
     * @return true if the bit is enabled, false otherwise
     */
    isIndexEnabled(i: number): boolean;
}
