import { AfterViewInit, EventEmitter, InjectionToken, Injector, OnChanges, OnDestroy, OnInit, QueryList, Renderer2 } from '@angular/core';
import { AsyncValidatorFn, FormControl, FormGroup, ValidatorFn } from '@angular/forms';
import { Subject, Subscription } from 'rxjs';
import { OMatErrorDirective } from '../../../../directives/o-mat-error.directive';
import { OTableColumn } from '../../../../interfaces/o-table-column.interface';
import { SnackBarService } from '../../../../services/snackbar.service';
import { OTranslateService } from '../../../../services/translate/o-translate.service';
import { OValidatorComponent } from '../../../../shared/components/validation/o-validator.component';
import { ErrorData } from '../../../../types/error-data.type';
import { OMatErrorOptions } from '../../../../types/o-mat-error.type';
import { ComponentWithValidatorsAndErrorsData } from '../../../../util/errors';
import { OTableComponent } from '../../o-table.component';
import * as i0 from "@angular/core";
export declare const O_TABLE_COLUMN_TOKEN: InjectionToken<OTableColumn>;
export declare const DEFAULT_INPUTS_O_TABLE_CELL_EDITOR: string[];
export declare const DEFAULT_OUTPUTS_O_TABLE_CELL_EDITOR: string[];
export declare class OBaseTableCellEditor implements OnInit, OnChanges, AfterViewInit, OnDestroy, ComponentWithValidatorsAndErrorsData {
    protected injector: Injector;
    protected translateService: OTranslateService;
    orequired: boolean;
    showPlaceHolder: boolean;
    olabel: string;
    updateRecordOnEdit: boolean;
    showNotificationOnEdit: boolean;
    protected _enabled: boolean;
    protected _tableColumn: OTableColumn;
    protected _table: OTableComponent;
    protected _rowData: any;
    formControl: FormControl;
    controlArgs: any;
    formGroup: FormGroup;
    editionStarted: EventEmitter<object>;
    editionCancelled: EventEmitter<object>;
    editionCommitted: EventEmitter<object>;
    onPostUpdateRecord: EventEmitter<object>;
    editorCreated: EventEmitter<object>;
    protected inputRef: any;
    protected type: string;
    registerInColumn: boolean;
    protected snackBarService: SnackBarService;
    protected oldValue: any;
    cellEditorId: string;
    errorsData: ErrorData[];
    protected validatorsSubscription: Subscription;
    validatorChildren: QueryList<OValidatorComponent>;
    protected renderer: Renderer2;
    protected destroy$: Subject<void>;
    onDocumentKeyup(event: KeyboardEvent): void;
    tooltipPosition: string;
    tooltipShowDelay: number;
    tooltipHideDelay: number;
    errorOptions: OMatErrorOptions;
    oMatErrorChildren: QueryList<OMatErrorDirective>;
    constructor(injector: Injector);
    ngOnInit(): void;
    ngOnChanges(): void;
    ngAfterViewInit(): void;
    ngOnDestroy(): void;
    initialize(): void;
    protected handleKeyup(event: KeyboardEvent): void;
    protected checkKey(event: KeyboardEvent, key: string, keyCode: number): boolean;
    createFormControl(): void;
    registerEditor(): void;
    getCellData(): any;
    startEdition(data: any): void;
    endEdition(saveChanges: boolean): void;
    commitEdition(): void;
    get tableColumn(): OTableColumn;
    set tableColumn(arg: OTableColumn);
    get tableColumnAttr(): string;
    set table(arg: OTableComponent);
    get table(): OTableComponent;
    get rowData(): any;
    set rowData(arg: any);
    resolveValidators(): ValidatorFn[];
    resolveAsyncValidators(): AsyncValidatorFn[];
    getActiveOErrors(): ErrorData[];
    getErrorText(oError: any): any;
    protected updateValidators(): void;
    hasError(error: string): boolean;
    hasSomeError(): boolean;
    hasErrorExclusive(error: string): boolean;
    getErrorValue(error: string, prop: string): string;
    onEscClicked(): void;
    protected isSilentControl(): boolean;
    getPlaceholder(): string;
    protected onUpdateSuccess(res: any): void;
    set enabled(arg: boolean);
    get enabled(): boolean;
    getFormControl(): FormControl<any>;
    setEditingRowClass(addClass: boolean): void;
    get tooltip(): string;
    get tooltipClass(): string;
    static ɵfac: i0.ɵɵFactoryDeclaration<OBaseTableCellEditor, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<OBaseTableCellEditor, never, never, { "orequired": { "alias": "required"; "required": false; }; "showPlaceHolder": { "alias": "show-placeholder"; "required": false; }; "olabel": { "alias": "label"; "required": false; }; "updateRecordOnEdit": { "alias": "update-record-on-edit"; "required": false; }; "showNotificationOnEdit": { "alias": "show-notification-on-edit"; "required": false; }; "enabled": { "alias": "enabled"; "required": false; }; }, { "editionStarted": "editionStarted"; "editionCancelled": "editionCancelled"; "editionCommitted": "editionCommitted"; "onPostUpdateRecord": "onPostUpdateRecord"; }, ["validatorChildren"], never, false, never>;
}
