/**
 * This module provides functionality for fragmenting sequences into ion fragments for mass spectrometry analysis.
 */
import { Ion } from './ion';
import { Sequence } from './sequence';
import { Modification } from './modification';
export declare const ax = "ax";
export declare const by = "by";
export declare const cz = "cz";
/**
 * Calculate non-labile modifications and yield associated transitions.
 *
 * For example, "by" would yield a tuple of "b" and "y" transitions.
 *
 * @param sequence - The sequence to be fragmented
 * @param fragmentType - The type of fragment transition (e.g., "by", "ax")
 */
export declare function fragmentNonLabile(sequence: Sequence, fragmentType: string): Generator<[Ion, Ion]>;
/**
 * Calculate all labile modification variants for the sequence and its associated labile modifications.
 *
 * @param sequence - The sequence to be fragmented
 * @returns An Ion object representing the fragmented sequence with labile modifications
 */
export declare function fragmentLabile(sequence: Sequence): Ion;
/**
 * A factory class for generating ion fragments from sequences.
 */
export declare class FragmentFactory {
    fragment_type: string;
    ignore: Modification[];
    /**
     * Initialize a FragmentFactory object.
     *
     * @param fragmentType - The type of fragment transition (e.g., "by", "ax")
     * @param ignore - A list of modifications to ignore
     */
    constructor(fragmentType: string, ignore?: Modification[]);
    /**
     * Set the list of modifications to ignore.
     *
     * @param ignore - A list of modifications to ignore
     */
    setIgnore(ignore: Modification[]): void;
}
//# sourceMappingURL=mass_spectrometry.d.ts.map