import { HttpEvent, HttpResponse } from '@angular/common/http';
import { ElementRef, EventEmitter, OnInit, Renderer2 } from '@angular/core';
import { MatDialog } from '@angular/material/dialog';
import { CustomClass, ElementDOM, UploadResponse } from '@asoftwareworld/form-builder-pro/api';
import { Observable } from 'rxjs';
import { SelectOption } from './../editor-select/editor-select';
import { AswEditorService } from './../editor.service';
import * as i0 from "@angular/core";
export declare class AswEditorToolbar implements OnInit, ElementDOM {
    private renderer;
    private aswEditorService;
    private doc;
    dialog: MatDialog;
    elementDOM: ElementRef<HTMLElement>;
    htmlMode: boolean;
    linkSelected: boolean;
    block: string;
    fontSize: string;
    foreColour: any;
    backColor: any;
    icons: any;
    colorsName: string[];
    constant: any;
    textColor: string;
    backgroundColor: string;
    selectedColor: string;
    show: boolean;
    headings: SelectOption[];
    fontSizes: SelectOption[];
    customClassId: string;
    customClasses$: CustomClass[];
    customClassList: SelectOption[];
    tagMap: any;
    select: string[];
    buttons: string[];
    id: string;
    uploadUrl: string;
    upload: ((file: File) => Observable<HttpEvent<UploadResponse>>) | any;
    showToolbar: boolean;
    fonts: SelectOption[];
    set customClasses(classes: CustomClass[]);
    set defaultFontSize(value: string);
    hiddenButtons?: string[][];
    execute: EventEmitter<string>;
    myInputFile?: ElementRef;
    get isLinkButtonDisabled(): boolean;
    constructor(renderer: Renderer2, aswEditorService: AswEditorService, doc: any, dialog: MatDialog, elementDOM: ElementRef<HTMLElement>);
    ngOnInit(): void;
    /**
     * Trigger command from editor header buttons
     * @param command string from toolbar buttons
     */
    triggerCommand(command: string): void;
    /**
     * highlight editor buttons when cursor moved or positioning
     */
    triggerButtons(): void;
    getChildById(id: string): any;
    /**
     * trigger highlight editor buttons when cursor moved or positioning in block
     */
    triggerBlocks(nodes: Node[]): void;
    /**
     * insert URL link
     */
    insertUrl(): void;
    /**
     * insert Video link
     */
    insertVideo(): void;
    /** insert color */
    insertColor(color: string, where: string): void;
    /**
     * Change status of visibility to color picker
     */
    toggleColors(where: string): void;
    /**
     * Change color from input
     */
    setColor(data: any): void;
    /**
     * set font Name/family
     * @param foreColor string
     */
    setFontName(foreColor: string): void;
    /**
     * set font Size
     * @param fontSize string
     */
    setFontSize(fontSize: string): void;
    /**
     * toggle editor mode (WYSIWYG or SOURCE)
     * @param m boolean
     */
    setEditorMode(m: boolean): void;
    /**
     * Upload image when file is selected.
     */
    onFileChanged(event: any): void;
    watchUploadImage(response: HttpResponse<{
        imageUrl: string;
    }> | any, event: any): void;
    /**
     * Set custom class
     */
    setCustomClass(classId: string): void;
    isButtonHidden(name: string): boolean;
    focus(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<AswEditorToolbar, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<AswEditorToolbar, "asw-editor-toolbar", never, { "id": { "alias": "id"; "required": false; }; "uploadUrl": { "alias": "uploadUrl"; "required": false; }; "upload": { "alias": "upload"; "required": false; }; "showToolbar": { "alias": "showToolbar"; "required": false; }; "fonts": { "alias": "fonts"; "required": false; }; "customClasses": { "alias": "customClasses"; "required": false; }; "defaultFontSize": { "alias": "defaultFontSize"; "required": false; }; "hiddenButtons": { "alias": "hiddenButtons"; "required": false; }; }, { "execute": "execute"; }, never, ["*"], false, never>;
}
