import { OnInit, ElementRef, EventEmitter, ReflectiveInjector } from '@angular/core';
import { NotificationModel } from '../../models/notification';
import { DraggableService } from '../../services/draggable-service/draggable.service';
import { TemplateService } from '../../services/template-service/template.service';
export declare class CfCoreComponent implements OnInit {
    elementRef: ElementRef;
    templateService: TemplateService;
    /**@hidden */
    injector: ReflectiveInjector;
    /**@hidden */
    draggableService: DraggableService;
    /**
     * <p>It represents an instance ID. User can set it.
     * By default, it's unique number, converted to string.</p>
     */
    id: string;
    /** @hidden
     * The name of the class that represents the component's theme
     */
    themeClass: string;
    /** @hidden
     * <p>It represents a pointer to the component's instance</p>
     */
    nativeElement: any;
    /**@hidden
     * <p>It represents component tooltip</p>
     */
    tooltip: any;
    /**@hidden
     * <p>Hide or Show Component</p>
     */
    display: boolean;
    /**@hidden
     * <p>Disable or Enable Component</p>
     */
    disable: boolean;
    /**
     * <p>It enables component internationalization</p>
     */
    enabledI18N: boolean;
    /**
     * <p>It enables component drag and drop</p>
     */
    draggable: boolean;
    /** @hidden
       * <p>It is a dynamic class the user can pass for the internal button</p>
       */
    cfClass: string;
    /**
     * <p>It represents core component notifications property object based on NotificationModel Class</p>
     */
    notification: NotificationModel;
    /**
     * <p> It represents the user defined template passed to the component
     */
    compTemplate: any;
    /**@hidden */
    activeTemplate: any;
    /**@hidden
     * <p> An array of the events the component is subscribed to.</p>
     */
    /**
     * <p>It is core component Notifications events emmiter to be used by other components</p>
     */
    notificationAction: EventEmitter<any>;
    /** @hidden
     * <p> Saves the tags of the events that the component is subscribed for.</p>
     * <p> Example: weather1, weather2, clock1...</p>
     */
    subscriptionTags: string[];
    /**@hidden */
    constructor(elementRef: ElementRef, templateService: TemplateService);
    /**@hidden */
    ngOnInit(): void;
    /** @hidden
     * <p>This method passes the attribute directive that has no parameters from the parent to the repsective child element.</p>
     * <p>@param attributeName: Name of the attribute to pass</p>
     * <p>@param attributeValue: Value of the attribute to pass</p>
     * <p>@param elementName: Name of the element that needs the attribute</p>
     */
    updateAttribute(elementName: string, attributeName: string, attributeValue: any): boolean;
    /**
     * @hidden
     * @param name
     * @param templatesObject
     * @param passedTemplate
     */
    getMyTemplate(name: string, templatesObject: any): Promise<{}>;
    /** @hidden
     * <p>Generate unique ID</p>
     */
    static generateId(): string;
}
