import { Sequence } from './sequence';
import { Modification } from './modification';
/**
 * Represents an ion fragment sequence object, inheriting properties from the Sequence class.
 *
 * This class is used to convert a Sequence object into an Ion fragment, with additional properties
 * such as charge, ion type, and fragment number. It also handles modifications and labile groups
 * within the sequence.
 */
export declare class Ion extends Sequence {
    charge: number;
    ion_type: string | null;
    fragment_number: number | null;
    mods: Map<number, Modification[]>;
    has_labile: boolean;
    /**
     * Initialize an Ion object.
     *
     * @param seq - The Sequence object to be converted into an Ion fragment
     * @param charge - The charge of the ion (default is 1)
     * @param ion_type - The name of the transition type
     * @param fragment_number - The number of the transition
     */
    constructor(seq: Sequence, charge?: number, ion_type?: string | null, fragment_number?: number | null);
    /**
     * Calculate the mass-to-charge ratio (m/z) of the ion.
     *
     * @param charge - The charge of the ion. If not specified, the object's charge is used
     * @param with_water - Whether the mass will be calculated with or without water
     * @param extra_mass - Extra modification of mass that is not represented within the sequence
     * @returns The calculated m/z value of the ion
     */
    mzCalculate(charge?: number, with_water?: boolean, extra_mass?: number): number;
}
//# sourceMappingURL=ion.d.ts.map