import { AfterViewInit, ElementRef, NgZone, OnChanges, OnDestroy, SimpleChanges } from '@angular/core';
import Handsontable from 'handsontable/base';
import { HotSettingsResolver } from './services/hot-settings-resolver.service';
import { HotConfigService } from './services/hot-config.service';
import { GridSettings } from './models/grid-settings';
import * as i0 from "@angular/core";
export declare const HOT_DESTROYED_WARNING: string;
export declare class HotTableComponent implements AfterViewInit, OnChanges, OnDestroy {
    private _hotSettingsResolver;
    private _hotConfig;
    ngZone: NgZone;
    /** The data for the Handsontable instance. */
    data: Handsontable.GridSettings['data'] | null;
    /** The settings for the Handsontable instance. */
    settings: GridSettings;
    /** The container element for the Handsontable instance. */
    container: ElementRef<HTMLDivElement>;
    /** The Handsontable instance. */
    private __hotInstance;
    private configSubscription;
    constructor(_hotSettingsResolver: HotSettingsResolver, _hotConfig: HotConfigService, ngZone: NgZone);
    /**
     * Gets the Handsontable instance.
     * @returns The Handsontable instance or `null` if it's not yet been created or has been destroyed.
     */
    get hotInstance(): Handsontable | null;
    /**
     * Sets the Handsontable instance.
     * @param hotInstance The Handsontable instance to set.
     */
    private set hotInstance(value);
    /**
     * Initializes the Handsontable instance after the view has been initialized.
     * The initial settings of the table are also prepared here
     */
    ngAfterViewInit(): void;
    ngOnChanges(changes: SimpleChanges): void;
    /**
     * Destroys the Handsontable instance and clears the columns from custom editors.
     */
    ngOnDestroy(): void;
    /**
     * Updates the Handsontable instance with new settings.
     * @param newSettings The new settings to apply to the Handsontable instance.
     */
    private updateHotTable;
    /**
     * Merges the provided Handsontable grid settings with the global configuration.
     *
     * This method retrieves the global configuration from the HotConfigService and negotiates the final
     * Handsontable settings by giving precedence to the provided settings.
     * Additionally, the `layoutDirection` is only merged if the Handsontable instance has not yet been initialized.
     *
     * @param settings - The grid settings provided by the user or component.
     * @returns The final negotiated grid settings after merging with global defaults.
     */
    private getNegotiatedSettings;
    static ɵfac: i0.ɵɵFactoryDeclaration<HotTableComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<HotTableComponent, "hot-table", never, { "data": { "alias": "data"; "required": false; }; "settings": { "alias": "settings"; "required": false; }; }, {}, never, never, false, never>;
}
