import { BaseBlock } from './base_block';
import { Modification } from './modification';
/**
 * Represents an amino acid block that can carry position, modifications, and amino acid value.
 *
 * Inherits from the BaseBlock class and adds functionality specific to amino acids, such as
 * handling modifications and inferring mass from a predefined dictionary.
 */
export declare class AminoAcid extends BaseBlock {
    private _mods;
    /**
     * Initialize an AminoAcid object.
     *
     * @param value - The amino acid one letter or three letter code
     * @param position - The position of this amino acid in a sequence
     * @param mass - The mass of the amino acid. If not provided, inferred from AA_mass dictionary
     */
    constructor(value: string, position?: number, mass?: number);
    /**
     * Get the list of modifications applied to this amino acid.
     */
    get mods(): Modification[];
    /**
     * Add a modification to this amino acid.
     *
     * @param mod - The modification to add
     */
    addModification(mod: Modification): void;
    /**
     * Add a modification to this amino acid (legacy method).
     *
     * @param mod - The modification to add
     */
    setModification(mod: Modification): void;
    /**
     * Remove a modification from this amino acid.
     *
     * @param mod - The modification or modification value to remove
     * @returns True if modification was removed, False if not found
     */
    removeModification(mod: Modification | string): boolean;
    /**
     * Check if this amino acid has a specific modification.
     *
     * @param mod - The modification or modification value to check for
     * @returns True if the modification exists, False otherwise
     */
    hasModification(mod: Modification | string): boolean;
    /**
     * Calculate the total mass including all modifications.
     *
     * @returns The total mass of the amino acid with all modifications
     */
    getTotalMass(): number;
    /**
     * Convert the amino acid to a dictionary representation.
     *
     * @returns Dictionary containing the amino acid's attributes including modifications
     */
    toDict(): Record<string, any>;
    /**
     * Check if two amino acids are equal including their modifications.
     */
    equals(other: any): boolean;
    /**
     * Generate a hash for the amino acid including modifications.
     */
    hashCode(): number;
    /**
     * Return a string representation with modifications.
     */
    toString(): string;
    /**
     * Return a detailed string representation for debugging.
     */
    toDebugString(): string;
}
//# sourceMappingURL=amino_acid.d.ts.map