import { EventEmitter, OnInit } from '@angular/core';
import { FormBuilder, FormGroup } from '@angular/forms';
import { PopoverConfig } from 'ngx-bootstrap/popover';
import { CommandExecutorService } from '../common/services/command-executor.service';
import { MessageService } from '../common/services/message.service';
export declare class NgxTextEditorToolbarComponent implements OnInit {
    private _popOverConfig;
    private _formBuilder;
    private _messageService;
    private _commandExecutorService;
    /** holds values of the insert link form */
    urlForm: FormGroup;
    /** holds values of the insert image form */
    imageForm: FormGroup;
    /** holds values of the insert video form */
    videoForm: FormGroup;
    /** set to false when image is being uploaded */
    uploadComplete: boolean;
    /** upload percentage */
    updloadPercentage: number;
    /** set to true when the image is being uploaded */
    isUploading: boolean;
    /** which tab to active for color insertion */
    selectedColorTab: string;
    /** font family name */
    fontName: string;
    /** font size */
    fontSize: string;
    /** hex color code */
    hexColor: string;
    /** show/hide image uploader */
    isImageUploader: boolean;
    wasH1Pressed: boolean;
    /** Icons for the Toolbar */
    icons: {
        heading: import("@fortawesome/fontawesome-common-types").IconDefinition;
        bold: import("@fortawesome/fontawesome-common-types").IconDefinition;
        italic: import("@fortawesome/fontawesome-common-types").IconDefinition;
        underline: import("@fortawesome/fontawesome-common-types").IconDefinition;
        strikethrough: import("@fortawesome/fontawesome-common-types").IconDefinition;
        superscript: import("@fortawesome/fontawesome-common-types").IconDefinition;
        subscript: import("@fortawesome/fontawesome-common-types").IconDefinition;
        font: import("@fortawesome/fontawesome-common-types").IconDefinition;
        textheight: import("@fortawesome/fontawesome-common-types").IconDefinition;
        tint: import("@fortawesome/fontawesome-common-types").IconDefinition;
        alignleft: import("@fortawesome/fontawesome-common-types").IconDefinition;
        aligncenter: import("@fortawesome/fontawesome-common-types").IconDefinition;
        alignright: import("@fortawesome/fontawesome-common-types").IconDefinition;
        alignjustify: import("@fortawesome/fontawesome-common-types").IconDefinition;
        indent: import("@fortawesome/fontawesome-common-types").IconDefinition;
        outdent: import("@fortawesome/fontawesome-common-types").IconDefinition;
        scissors: import("@fortawesome/fontawesome-common-types").IconDefinition;
        fileso: import("@fortawesome/fontawesome-common-types").IconDefinition;
        trash: import("@fortawesome/fontawesome-common-types").IconDefinition;
        eraser: import("@fortawesome/fontawesome-common-types").IconDefinition;
        undo: import("@fortawesome/fontawesome-common-types").IconDefinition;
        repeat: import("@fortawesome/fontawesome-common-types").IconDefinition;
        paragraph: import("@fortawesome/fontawesome-common-types").IconDefinition;
        quoteleft: import("@fortawesome/fontawesome-common-types").IconDefinition;
        quoteright: import("@fortawesome/fontawesome-common-types").IconDefinition;
        minus: import("@fortawesome/fontawesome-common-types").IconDefinition;
        listul: import("@fortawesome/fontawesome-common-types").IconDefinition;
        listol: import("@fortawesome/fontawesome-common-types").IconDefinition;
        link: import("@fortawesome/fontawesome-common-types").IconDefinition;
        chainbroken: import("@fortawesome/fontawesome-common-types").IconDefinition;
        pictureo: import("@fortawesome/fontawesome-common-types").IconDefinition;
        youtubeplay: import("@fortawesome/fontawesome-common-types").IconDefinition;
        upload: import("@fortawesome/fontawesome-common-types").IconDefinition;
    };
    /**
     * Editor configuration
     */
    config: any;
    urlPopover: any;
    imagePopover: any;
    videoPopover: any;
    fontSizePopover: any;
    colorPopover: any;
    /**
     * Emits an event when a toolbar button is clicked
     */
    execute: EventEmitter<string>;
    /**
     * Emits an event then an image is selected
     */
    uploadImage: EventEmitter<HTMLInputElement>;
    constructor(_popOverConfig: PopoverConfig, _formBuilder: FormBuilder, _messageService: MessageService, _commandExecutorService: CommandExecutorService);
    /**
     * enable or diable toolbar based on configuration
     *
     * @param value name of the toolbar buttons
     */
    canEnableToolbarOptions(value: any): boolean;
    /**
     * triggers command from the toolbar to be executed and emits an event
     *
     * @param command name of the command to be executed
     */
    triggerCommand(command: string): void;
    /**
     * create URL insert form
     */
    buildUrlForm(): void;
    /**
     * inserts link in the editor
     */
    insertLink(): void;
    /**
     * create insert image form
     */
    buildImageForm(): void;
    /**
     * create insert image form
     */
    buildVideoForm(): void;
    /**
     * Executed when file is selected
     *
     * @param e onChange event
     */
    onFileChange(e: any): void;
    /** insert image in the editor */
    insertImage(): void;
    /** insert image in the editor */
    insertVideo(): void;
    /** inser text/background color */
    insertColor(color: string, where: string): void;
    /** set font size */
    setFontSize(fontSize: string): void;
    /** set font Name/family */
    setFontName(fontName: string): void;
    ngOnInit(): void;
    toggleHeading(heading: string): void;
}
