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;
}
interface ImageConverterInstance {
    convertToJpeg(imageBuffer: ImageBuffer): Uint8Array;
}
interface ImageConverter {
}
interface ImageConverter_statics {
    setInstance(instance: ImageConverterInstance): void;
    getInstance(): ImageConverterInstance;
}
interface SdcCoreInternalSdkCommonGeometry_statics {
    SizeWithUnitAndAspect: SizeWithUnitAndAspect_statics;
    ImageConverter: ImageConverter_statics;
}

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