import { ImagePlane } from './sdcCoreCommonGraphic.js';
import { Rect, SizeWithUnit, SizeWithAspect, SizingMode, FloatWithUnit } from './sdcCoreCommonGeometry.js';

interface SizeWithUnitAndAspect {
    getWidthAndHeight(): SizeWithUnit | undefined;
    getWidthWithAspect(): SizeWithAspect | undefined;
    getHeightWithAspect(): SizeWithAspect | undefined;
    getShorterDimensionWithAspect(): SizeWithAspect | undefined;
    getSizingMode(): SizingMode;
    toJson(): string;
}
interface SizeWithUnitAndAspect_statics {
    createWithWidthAndHeight(widthAndHeight: SizeWithUnit): SizeWithUnitAndAspect;
    createWithWidthAndAspectRatio(width: FloatWithUnit, aspectRatio: number): SizeWithUnitAndAspect;
    createWithHeightAndAspectRatio(height: FloatWithUnit, aspectRatio: number): SizeWithUnitAndAspect;
    createWithShorterDimensionAndAspectRatio(fraction: number, aspectRatio: number): SizeWithUnitAndAspect;
}
interface ImageBuffer {
    deepCopy(): ImageBuffer;
    getWidth(): number;
    getHeight(): number;
    getPlanes(): Array<ImagePlane>;
    toBitmap(): Uint8Array;
    getBitmapRepresentationFromYUV(imageCrop: Rect): Uint8Array;
}
declare enum BitmapByteOrder {
    RGBA = 0,
    BGRA = 1
}
interface BitmapWithFormat {
    data: Uint8Array;
    byteOrder: BitmapByteOrder;
}
interface ImageConverterInstance {
    convertToJpeg(imageBuffer: ImageBuffer, orientation: number): Promise<Uint8Array>;
    convertToBitmap(imageBuffer: ImageBuffer): BitmapWithFormat;
}
interface ImageConverter {
}
interface ImageConverter_statics {
    setInstance(instance: ImageConverterInstance): void;
    getInstance(): ImageConverterInstance;
}
interface SdcCoreInternalSdkCommonGeometry_statics {
    SizeWithUnitAndAspect: SizeWithUnitAndAspect_statics;
    ImageConverter: ImageConverter_statics;
}

export { BitmapByteOrder, type BitmapWithFormat, type ImageBuffer, type ImageConverter, type ImageConverterInstance, type ImageConverter_statics, type SdcCoreInternalSdkCommonGeometry_statics, type SizeWithUnitAndAspect, type SizeWithUnitAndAspect_statics };
