import { OnChanges, OnDestroy, OnInit, SimpleChanges } from '@angular/core';
import type { MapImageData, MapImageOptions } from '../map/map.types';
import * as i0 from "@angular/core";
/**
 * `mgl-image` - an image component
 * @see [addImage](https://maplibre.org/maplibre-gl-js/docs/API/classes/Map/#addimage)
 *
 * @category Components
 *
 * @example
 * ```html
 * ...
 * <mgl-map
 *   ...
 * >
 *    <mgl-image
 *      id="image"
 *      url="https://..."
 *      (imageLoaded)="imageLoaded = true"
 *    >
 *    ...
 *    <mgl-image
 *      id="image2"
 *      [data]="{
 *        width: 64,
 *        height: 64,
 *        data: imageData
 *      }"
 *    >
 * </mgl-map>
 * ...
 * imageData: Uint8Array;
 * ```
 */
export declare class ImageComponent implements OnInit, OnChanges, OnDestroy {
    /** Init injection */
    private readonly mapService;
    private readonly destroyRef;
    private readonly zone;
    /** Init input */
    readonly id: import("@angular/core").InputSignal<string>;
    /** Dynamic input */
    readonly data: import("@angular/core").InputSignal<MapImageData | undefined>;
    /** Dynamic input */
    readonly options: import("@angular/core").InputSignal<MapImageOptions | undefined>;
    /** Dynamic input */
    readonly url: import("@angular/core").InputSignal<string | undefined>;
    readonly imageError: import("@angular/core").OutputEmitterRef<{
        status: number;
    }>;
    readonly imageLoaded: import("@angular/core").OutputEmitterRef<void>;
    private isAdded;
    private isAdding;
    ngOnInit(): void;
    ngOnChanges(changes: SimpleChanges): void;
    ngOnDestroy(): void;
    removeImage(): void;
    private addImage;
    static ɵfac: i0.ɵɵFactoryDeclaration<ImageComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<ImageComponent, "mgl-image", never, { "id": { "alias": "id"; "required": true; "isSignal": true; }; "data": { "alias": "data"; "required": false; "isSignal": true; }; "options": { "alias": "options"; "required": false; "isSignal": true; }; "url": { "alias": "url"; "required": false; "isSignal": true; }; }, { "imageError": "imageError"; "imageLoaded": "imageLoaded"; }, never, never, true, never>;
}
