/** @format */
import { IfdValueType } from './ifd-value-type.js';
/** Interface for initializing ExifTag options */
export interface ExifTagInitOptions {
    /** The name of the Exif tag */
    name: string;
    /** The type of the Exif tag, optional */
    type?: IfdValueType;
    /** The count of the Exif tag, optional */
    count?: number;
}
/**
 * Represents an ExifTag with a name, type, and optional count.
 */
export declare class ExifTag {
    /**
     * The name of the ExifTag.
     */
    private readonly _name;
    /**
     * Gets the name of the ExifTag.
     * @returns {string} The name of the ExifTag.
     */
    get name(): string;
    /**
     * The type of the ExifTag.
     */
    private readonly _type;
    /**
     * Gets the type of the ExifTag.
     * @returns {IfdValueType} The type of the ExifTag.
     */
    get type(): IfdValueType;
    /**
     * The count of the ExifTag, if available.
     */
    private _count?;
    /**
     * Gets the count of the ExifTag.
     * @returns {number | undefined} The count of the ExifTag, or undefined if not set.
     */
    get count(): number | undefined;
    /**
     * Initializes a new instance of the ExifTag class.
     * @param {ExifTagInitOptions} opt - The initialization options for the ExifTag.
     * @param {string} opt.name - The name of the ExifTag.
     * @param {IfdValueType} opt.type - The type of the ExifTag.
     * @param {number} [opt.count] - The count of the ExifTag.
     */
    constructor(opt: ExifTagInitOptions);
}
/**
 * Map that associates EXIF tag names with their corresponding IDs.
 */
export declare const ExifTagNameToID: Map<string, number>;
/**
 * Map of Exif image tags
 */
export declare const ExifImageTags: Map<number, ExifTag>;
/**
 * Map containing Exif Interoperability Tags
 */
export declare const ExifInteropTags: Map<number, ExifTag>;
/**
 * Map containing GPS Exif tags
 */
export declare const ExifGpsTags: Map<number, ExifTag>;
