/**-----------------------------------------------------------------------------------------
* Copyright © 2025 Progress Software Corporation. All rights reserved.
* Licensed under commercial license. See LICENSE.md in the project root for more information
*-------------------------------------------------------------------------------------------*/
import { AfterViewInit, ElementRef, NgZone, OnChanges, Renderer2, SimpleChanges } from '@angular/core';
import { Group, ImageExportOptions, SVGExportOptions } from '@progress/kendo-drawing';
import * as i0 from "@angular/core";
/**
 * @hidden
 */
export declare abstract class BaseComponent implements OnChanges, AfterViewInit {
    protected element: ElementRef;
    protected renderer: Renderer2;
    protected ngZone: NgZone;
    resizeRateLimit: number;
    surfaceElement: ElementRef;
    protected instance: any;
    protected abstract get options(): any;
    protected get autoResize(): boolean;
    protected get canRender(): boolean;
    constructor(element: ElementRef, renderer: Renderer2, ngZone: NgZone);
    ngAfterViewInit(): void;
    ngOnChanges(changes: SimpleChanges): void;
    /**
     * Detects the size of the container and redraws the component.
     * Resizing is automatic unless you set the `resizeRateLimit` option to `0`.
     */
    resize(): void;
    /**
     * @hidden
     */
    onResize(): void;
    /**
     * Exports the component as an image. The export operation is asynchronous and returns a promise.
     *
     * @param {ImageExportOptions} options - The parameters for the exported image.
     * @returns {Promise<string>} - A promise that will be resolved with a PNG image encoded as a Data URI.
     */
    exportImage(options?: ImageExportOptions): Promise<string>;
    /**
     * Exports the component as an SVG document. The export operation is asynchronous and returns a promise.
     *
     * @param options - The parameters for the exported file.
     * @returns - A promise that will be resolved with an SVG document that is encoded as a Data URI.
     */
    exportSVG(options?: SVGExportOptions): Promise<string>;
    /**
     * Exports the component as a Drawing Group.
     *
     * @returns - The exported Group.
     */
    exportVisual(): Group;
    protected abstract createInstance(element: any, options: any): any;
    protected refresh(): void;
    protected isDevMode(): boolean;
    static ɵfac: i0.ɵɵFactoryDeclaration<BaseComponent, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<BaseComponent, never, never, { "resizeRateLimit": { "alias": "resizeRateLimit"; "required": false; }; }, {}, never, never, false, never>;
}
