import { HttpClient } from '@angular/common/http';
import { EventEmitter } from '@angular/core';
import { CommonLibConfigurationService } from '../../common-lib-configuration.service';
import { Widget } from '../../forms/page/widgets/widget';
import { ClipboardService } from './clipboard.service';
import { FormBuilderMasterService } from '../../sculptor/form-builder-master/form-builder-master.service';
import * as i0 from "@angular/core";
export declare class WidgetsService {
    private _httpClient;
    private commonLibConfig;
    private clipboardService;
    private _formBuilderMasterService;
    private readonly IDENTIFIERS_STORAGE_KEY;
    identifiersArray: Array<string>;
    _widgetDeleteEvent: EventEmitter<Widget>;
    _widgetCopyEvent: EventEmitter<Widget>;
    _widgetCutEvent: EventEmitter<Widget>;
    _widgetPasteEvent: EventEmitter<Widget>;
    _widgetPasteAIEvent: EventEmitter<Widget>;
    private isPastingAI;
    /**
     * Constructor
     */
    constructor(_httpClient: HttpClient, commonLibConfig: CommonLibConfigurationService, clipboardService: ClipboardService, _formBuilderMasterService: FormBuilderMasterService);
    private updateIdentifiersStorage;
    /**
   * Update identifiersArray after deleting a widget
   * @param deletedIdentifier The identifier of the deleted widget
   */
    updateIdentifiersAfterDelete(deletedIdentifier: string): void;
    /**
     *
     * @param identifier
     * @param formId
     * @returns
     */
    private previousIdentifiersMap;
    getUniqueIdentifier(identifier: string, formId: string): Promise<string>;
    extractParts(input: string): {
        base: string;
        number: number | null;
    };
    isValidIdentifier(identifier: string): boolean;
    /**
     *to emit widget click event on widget Delete click
     *
     * @param widget
     */
    widgetDeleteEvent(widget: Widget): void;
    widgetCopyEvent(widget: Widget): void;
    widgetCutEvent(widget: Widget): void;
    widgetPasteEvent(): void;
    widgetPasteAIEvent(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<WidgetsService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<WidgetsService>;
}
