/// <reference types="node" />
import { Point } from "@dedis/kyber";
import Long from "long";
import { Message, Properties } from "protobufjs/light";
export declare class PopPartyStruct extends Message<PopPartyStruct> {
    /**
     * @see README#Message classes
     */
    static register(): void;
    state: number;
    readonly organizers: number;
    readonly finalizations: string[];
    readonly description: PopDesc;
    readonly attendees: Attendees;
    readonly miners: LRSTag[];
    readonly miningReward: Long;
    readonly previous: Buffer;
    readonly next: Buffer;
    constructor(props?: Properties<PopPartyStruct>);
    /**
     * Replace the current attendees by the new ones and sort them, so that different
     * organizers scanning in a different order get the same result.
     *
     * @param publics Public keys of the new attendees
     */
    updateAttendes(publics: Point[]): void;
}
export declare class FinalStatement extends Message<FinalStatement> {
    /**
     * @see README#Message classes
     */
    static register(): void;
    readonly desc: PopDesc;
    readonly attendees: Attendees;
}
export declare class PopDesc extends Message<PopDesc> {
    /**
     * Getter for the timestamp
     * @returns the timestamp as a number
     */
    readonly timestamp: number;
    /**
     * Format the timestamp into a human readable string
     * @returns a string of the time
     */
    readonly dateString: string;
    /**
     * Format the timestamp to a unique string
     * @returns the string
     */
    readonly uniqueName: string;
    /**
     * @see README#Message classes
     */
    static register(): void;
    readonly name: string;
    readonly purpose: string;
    readonly datetime: Long;
    readonly location: string;
    constructor(props?: Properties<PopDesc>);
    /**
     * Helper to encode the statement using protobuf
     * @returns the bytes
     */
    toBytes(): Buffer;
}
export declare class Attendees extends Message<Attendees> {
    /**
     * Get the keys as kyber points
     * @returns a list of points
     */
    readonly publics: Point[];
    /**
     * @see README#Message classes
     */
    static register(): void;
    readonly keys: Buffer[];
    constructor(properties?: Properties<Attendees>);
    /**
     * Helper to encode the attendees using protobuf
     * @returns the bytes
     */
    toBytes(): Buffer;
}
export declare class LRSTag extends Message<LRSTag> {
    /**
     * @see README#Message classes
     */
    static register(): void;
    readonly tag: Buffer;
    constructor(props?: Properties<LRSTag>);
}
