import { ComponentConfig } from './../../models/componentConfig';
import { EventEmitter, ChangeDetectorRef } from '@angular/core';
import { FormGroup, AbstractControl } from '@angular/forms';
import { Task, Control, Field } from '../../models';
import { ProcessService } from '../../services/process.service';
import { BsDatepickerConfig } from 'ngx-bootstrap/datepicker';
import { Subscription } from 'rxjs/index';
import { Debugger, DGSNotificationService } from '@dotgov/core';
import { ObjectLiteral } from '../../models/objectLiteral';
/**
 * @Author [GrigoreMe](https://github.com/grigoreme)
 */
export declare class FVAbstractControl extends Debugger {
    debugStatus: boolean;
    bsDateConfig: Partial<BsDatepickerConfig>;
    errorMsg: string;
    environment: any;
    _notification: DGSNotificationService;
    protected formData: Task;
    protected isDestroyed: boolean;
    protected subscriptions: Subscription[];
    protected _task: Task;
    set task(task: Task);
    protected _parentTask: Task;
    set parentTask(parentTask: Task);
    protected _control: Control;
    set control(control: Control);
    protected _stateId: string;
    set stateId(stateId: string);
    protected _processId: string;
    set processId(processId: string);
    protected _group: FormGroup;
    set group(group: FormGroup);
    protected _tabIndex: number;
    set tabIndex(tabIndex: number);
    protected _disabled: boolean;
    set disabled(disabled: boolean);
    updateGroup: EventEmitter<any>;
    private _process;
    constructor(_process: ProcessService);
    generateUserData(): any;
    /**
     * Returns debug text for current component.
     */
    toString(): string;
    updateFormGroup(event: any): void;
    hasHandler(handler: 'add' | 'edit' | 'delete'): boolean;
    get recordData(): ObjectLiteral;
    get parentTask(): Task;
    get task(): Task;
    get control(): Control;
    get stateId(): string;
    get processId(): string;
    get group(): FormGroup;
    get tabIndex(): number;
    get defaultControlSize(): number;
    get tooltip(): string;
    get disabled(): boolean | null;
    get isReadOnly(): boolean;
    get componentConfig(): ComponentConfig;
    get buttonsDebug(): boolean;
    get hideLabel(): boolean;
    get formControl(): AbstractControl;
    protected setValue(_value?: any): void;
    protected AfterViewInit(): void;
    protected saveKey(): void;
    protected controlRef(refName?: string, task?: Task): Control | Field;
    protected evalEventJs(): void;
    private loadNotificationService;
    protected OnDestroy(ref?: ChangeDetectorRef): void;
}
