import type { IImage, ImageLoaderFn, Point2, Point3, Mat3, PixelDataTypedArrayString, PixelDataTypedArray } from '../types';
import VoxelManagerEnum from '../enums/VoxelManagerEnum';
export interface ImageLoaderOptions {
    priority: number;
    requestType: string;
    additionalDetails?: Record<string, unknown>;
    ignoreCache?: boolean;
}
interface LocalImageOptions {
    frameOfReferenceUID?: string;
    scalarData?: PixelDataTypedArray;
    targetBuffer?: {
        type: PixelDataTypedArrayString;
    };
    voxelRepresentation?: VoxelManagerEnum;
    dimensions?: Point2;
    spacing?: Point2;
    origin?: Point3;
    direction?: Mat3;
    skipCreateBuffer?: boolean;
    onCacheAdd?: (image: IImage) => void;
}
type DerivedImageOptions = LocalImageOptions & {
    imageId?: string;
    instanceNumber?: number;
};
export declare function loadImage(imageId: string, options?: ImageLoaderOptions): Promise<IImage>;
export declare function loadAndCacheImage(imageId: string, options?: ImageLoaderOptions): Promise<IImage>;
export declare function loadAndCacheImages(imageIds: string[], options?: ImageLoaderOptions): Promise<IImage>[];
export declare function createAndCacheDerivedImage(referencedImageId: string, options?: DerivedImageOptions): IImage;
export declare function createAndCacheDerivedImages(referencedImageIds: string[], options?: DerivedImageOptions & {
    getDerivedImageId?: (referencedImageId: string) => string;
    targetBuffer?: {
        type: PixelDataTypedArrayString;
    };
    voxelRepresentation?: VoxelManagerEnum;
}): IImage[];
export declare function createAndCacheLocalImage(imageId: string, options: LocalImageOptions): IImage;
export declare function cancelLoadImage(imageId: string): void;
export declare function cancelLoadImages(imageIds: string[]): void;
export declare function cancelLoadAll(): void;
export declare function registerImageLoader(scheme: string, imageLoader: ImageLoaderFn): void;
export declare function registerUnknownImageLoader(imageLoader: ImageLoaderFn): ImageLoaderFn;
export declare function unregisterAllImageLoaders(): void;
export declare function createAndCacheDerivedLabelmapImages(referencedImageIds: string[], options?: DerivedImageOptions): IImage[];
export declare function createAndCacheDerivedLabelmapImage(referencedImageId: string, options?: DerivedImageOptions): IImage;
export {};
