/**
 * Enum representing the major IIIF Image API versions
 */
export type Versions = string;
export namespace Versions {
    export const VERSION1: string;
    export const VERSION2: string;
    export const VERSION3: string;
}
export default IIIFInfo;
export type PreferredOptions = {
    /**
     * Preferred image format. Will be used if the image information
     * indicates support for that format.
     */
    format?: string;
    /**
     * IIIF image qualitiy.  Will be used if the image information
     * indicates support for that quality.
     */
    quality?: string;
};
export type SupportedFeatures = {
    /**
     * Supported IIIF image size and region
     * calculation features.
     */
    supports?: string[];
    /**
     * Supported image formats.
     */
    formats?: string[];
    /**
     * Supported IIIF image qualities.
     */
    qualities?: string[];
};
export type TileInfo = {
    /**
     * Supported resolution scaling factors.
     */
    scaleFactors: number[];
    /**
     * Tile width in pixels.
     */
    width: number;
    /**
     * Tile height in pixels. Same as tile width if height is
     * not given.
     */
    height?: number;
};
export type IiifProfile = {
    /**
     * Supported image formats for the image service.
     */
    formats?: string[];
    /**
     * Supported IIIF image qualities.
     */
    qualities?: string[];
    /**
     * Supported features.
     */
    supports?: string[];
    /**
     * Maximum area (pixels) available for this image service.
     */
    maxArea?: number;
    /**
     * Maximum height.
     */
    maxHeight?: number;
    /**
     * Maximum width.
     */
    maxWidth?: number;
};
export type ImageInformationResponse = {
    [x: string]: string | number | (string | number | IiifProfile | {
        [x: string]: number;
    } | TileInfo)[];
};
/**
 * @classdesc
 * Format for transforming IIIF Image API image information responses into
 * IIIF tile source ready options
 *
 * @api
 */
declare class IIIFInfo {
    /**
     * @param {string|ImageInformationResponse} imageInfo
     * Deserialized image information JSON response object or JSON response as string
     */
    constructor(imageInfo: string | {
        [x: string]: string | number | (string | number | IiifProfile | {
            [x: string]: number;
        } | TileInfo)[];
    });
    /**
     * @param {string|ImageInformationResponse} imageInfo
     * Deserialized image information JSON response object or JSON response as string
     * @api
     */
    setImageInfo(imageInfo: string | {
        [x: string]: string | number | (string | number | IiifProfile | {
            [x: string]: number;
        } | TileInfo)[];
    }): void;
    imageInfo: any;
    /**
     * @return {Versions} Major IIIF version.
     * @api
     */
    getImageApiVersion(): string;
    /**
     * @param {Versions} version Optional IIIF image API version
     * @return {string} Compliance level as it appears in the IIIF image information
     * response.
     */
    getComplianceLevelEntryFromProfile(version: string): string;
    /**
     * @param {Versions} version Optional IIIF image API version
     * @return {string} Compliance level, on of 'level0', 'level1' or 'level2' or undefined
     */
    getComplianceLevelFromProfile(version: string): string;
    /**
     * @return {SupportedFeatures} Image formats, qualities and region / size calculation
     * methods that are supported by the IIIF service.
     */
    getComplianceLevelSupportedFeatures(): SupportedFeatures;
    /**
     * @param {PreferredOptions} [opt_preferredOptions] Optional options for preferred format and quality.
     * @return {import("../source/IIIF.js").Options} IIIF tile source ready constructor options.
     * @api
     */
    getTileSourceOptions(opt_preferredOptions?: PreferredOptions | undefined): import("../source/IIIF.js").Options;
}
//# sourceMappingURL=IIIFInfo.d.ts.map