import { ImageFormat } from '../enum';
import { _PdfCrossReference, PdfPage, Rectangle } from '@syncfusion/ej2-pdf';
import { PdfRedactionRegion } from '../redaction/pdf-redaction-region';
export declare class _PdfImage {
    private image;
    private width;
    private height;
    private interpolate;
    private imageMask;
    private matte;
    private bpc;
    private colorSpace;
    private numComps;
    private decode;
    private needsDecode;
    private decodeCoefficients;
    private decodeAddends;
    private smask;
    _canvasRenderCallback: any;
    _imageFormat: ImageFormat;
    private imageResizer;
    private mask;
    private jpxDecoderOptions;
    forceRgba: boolean;
    forceRgb: boolean;
    _bounds: number[];
    _page: PdfPage;
    _options: PdfRedactionRegion[];
    _isIntersect: boolean;
    _initializeFromImage(xref: any, image: any, isInline: boolean, callBack: any, // eslint-disable-line 
    smask?: any, mask?: any, isMask?: boolean): Promise<any>;
    _resizeImageMask(src: Uint8Array | Uint16Array | Uint32Array, bpc: number, w1: number, h1: number, w2: number, h2: number): Uint8Array | Uint16Array | Uint32Array;
    _isDefaultDecode(): boolean;
    _getImageData(length: number, decoderOptions: any): any;
    _createImageData(forceRGBA?: boolean, isOffscreenCanvasSupported?: boolean): Promise<any>;
    _findImageFormat(format: ImageFormat): string;
    _buildImage(xref: _PdfCrossReference, image: any, isInline: boolean, callBack: any): Promise<_PdfImage>;
    _createMask(image: any, isOffscreenCanvasSupported: boolean): any;
    readonly drawWidth: number;
    readonly drawHeight: number;
    _decodeBuffer(buffer: Uint8Array): void;
    _getComponents(buffer: Uint8Array): Uint8Array | Uint16Array | Uint32Array;
    _fillOpacity(rgbaBuf: Uint8ClampedArray, width: number, height: number, actualHeight: number, image: Uint8ClampedArray): Promise<void>;
    _undoPreblend(buffer: Uint8ClampedArray, width: number, height: number): void;
    _fillGrayBuffer(buffer: Uint8ClampedArray): Promise<void>;
    _createBitmap(kind: any, width: number, height: number, src: Uint8ClampedArray): Promise<any>;
    _getTransferableImage(): any;
    _getImage(width: number, height: number): any;
    _getImageBytes(length: number, { drawWidth, drawHeight, forceRGBA, forceRGB, internal }: {
        drawWidth?: number;
        drawHeight?: number;
        forceRGBA?: boolean;
        forceRGB?: boolean;
        internal?: boolean;
    }): Promise<Uint8Array>;
    _processImageRedaction(canvasImgData: any): void;
    _intersect(a: Rectangle, b: Rectangle): any;
    _applyRedaction(imageData: ImageData, x: number, y: number, w: number, h: number): void;
}
/**
 * Represents the application platform type.
 *
 * ```typescript
 * // Load an existing PDF document
 * let document: PdfDocument = new PdfDocument(data);
 * // Define a canvas render callback that returns a canvas element and the application platform.
 * const canvasRenderCallback = (): {canvas: any, applicationPlatform: ApplicationPlatform} => {
 *     const canvas = document.createElement('canvas');
 *     return { canvas: canvas, applicationPlatform: ApplicationPlatform.vue };
 * };
 * // Initialize a new instance of the `PdfDataExtractor` class
 * let extractor: PdfDataExtractor = new PdfDataExtractor(document, callBack: canvasRenderCallback);
 * // Extract collection of `PdfEmbeddedImage` from the PDF document.
 * let imageInfoCollection: PdfEmbeddedImage[] = extractor.extractImages({ startPageIndex: 0, endPageIndex: document.pageCount - 1});
 * let imageInfo: PdfEmbeddedImage = imageInfoCollection[0];
 * let data: Uint8Array = imageInfo.data;
 * // Destroy the documents
 * document.destroy();
 */
export declare enum ApplicationPlatform {
    /**
     * Specifies the `typeScript` platform.
     */
    typescript = "typescript",
    /**
     * Specifies the `javascript` platform.
     */
    javascript = "javascript",
    /**
     * Specifies the `angular` platform.
     */
    angular = "angular",
    /**
     * Specifies the `react` platform.
     */
    react = "react",
    /**
     * Specifies the `vue` platform.
     */
    vue = "vue",
    /**
     * Specifies the `aspnetcore` platform.
     */
    aspnetcore = "aspnetcore",
    /**
     * Specifies the `aspnetmvc` platform.
     */
    aspnetmvc = "aspnetmvc"
}
