/**
 * @template T
 */
export class WeightedElement<T> {
    /**
     * @template T
     * @param {T} element
     * @param {number} [weight=1]
     * @returns {WeightedElement<T>}
     */
    static from<T_1>(element: T_1, weight?: number): WeightedElement<T_1>;
    /**
     * @template X
     * @param {WeightedElement<X>} object
     * @return {number}
     */
    static getWeight<X>(object: WeightedElement<X>): number;
    weight: number;
    /**
     *
     * @type {T}
     */
    data: T;
    /**
     *
     * @param {T} other
     * @return {boolean}
     */
    equals(other: T): boolean;
    /**
     *
     * @return {number}
     */
    hash(): number;
    /**
     * @readonly
     * @type {boolean}
     */
    readonly isWeightedElement: boolean;
}
//# sourceMappingURL=WeightedElement.d.ts.map