/** @format */
import { OutputBuffer } from '../../common/output-buffer.js';
import { Rational } from '../../common/rational.js';
import { IfdValueType } from '../ifd-value-type.js';
/**
 * Abstract class representing an IFD (Image File Directory) value.
 */
export declare abstract class IfdValue {
    /**
     * Gets the type of the IFD value.
     * @returns {IfdValueType} The type of the IFD value.
     */
    get type(): IfdValueType;
    /**
     * Gets the length of the IFD value.
     * @returns {number} The length of the IFD value.
     */
    get length(): number;
    /**
     * Gets the data size of the IFD value.
     * @returns {number} The data size of the IFD value.
     */
    get dataSize(): number;
    /**
     * Gets the type string of the IFD value.
     * @returns {string} The type string of the IFD value.
     */
    get typeString(): string;
    /**
     * Converts the IFD value to a boolean.
     * @param {number} [_index] - Optional index.
     * @returns {boolean} The boolean representation of the IFD value.
     */
    toBool(_index?: number): boolean;
    /**
     * Converts the IFD value to an integer.
     * @param {number} [_index] - Optional index.
     * @returns {number} The integer representation of the IFD value.
     */
    toInt(_index?: number): number;
    /**
     * Converts the IFD value to a double.
     * @param {number} [_index] - Optional index.
     * @returns {number} The double representation of the IFD value.
     */
    toDouble(_index?: number): number;
    /**
     * Converts the IFD value to a Uint8Array.
     * @returns {Uint8Array} The Uint8Array representation of the IFD value.
     */
    toData(): Uint8Array;
    /**
     * Converts the IFD value to a Rational.
     * @param {number} [_index] - Optional index.
     * @returns {Rational} The Rational representation of the IFD value.
     */
    toRational(_index?: number): Rational;
    /**
     * Writes the IFD value to an output buffer.
     * @param {OutputBuffer} _out - The output buffer.
     */
    write(_out: OutputBuffer): void;
    /**
     * Sets the IFD value to a boolean.
     * @param {boolean} _v - The boolean value.
     * @param {number} [_index] - Optional index.
     */
    setBool(_v: boolean, _index?: number): void;
    /**
     * Sets the IFD value to an integer.
     * @param {number} _v - The integer value.
     * @param {number} [_index] - Optional index.
     */
    setInt(_v: number, _index?: number): void;
    /**
     * Sets the IFD value to a double.
     * @param {number} _v - The double value.
     * @param {number} [_index] - Optional index.
     */
    setDouble(_v: number, _index?: number): void;
    /**
     * Sets the IFD value to a Rational.
     * @param {number} _numerator - The numerator of the Rational.
     * @param {number} _denomitator - The denominator of the Rational.
     * @param {number} [_index] - Optional index.
     */
    setRational(_numerator: number, _denomitator: number, _index?: number): void;
    /**
     * Sets the IFD value to a string.
     * @param {string} _v - The string value.
     */
    setString(_v: string): void;
    /**
     * Checks if the IFD value is equal to another IFD value.
     * @param {IfdValue} _other - The other IFD value.
     * @returns {boolean} True if the values are equal, false otherwise.
     */
    equals(_other: IfdValue): boolean;
    /**
     * Clones the IFD value.
     * @returns {IfdValue} The cloned IFD value.
     * @throws {LibError} If the value cannot be copied.
     */
    clone(): IfdValue;
    /**
     * Converts the IFD value to a string.
     * @returns {string} The string representation of the IFD value.
     */
    toString(): string;
}
