import { ElementRef, EventEmitter, OnInit } from '@angular/core';
import { UntypedFormBuilder, UntypedFormGroup } from '@angular/forms';
import { MatTableDataSource } from '@angular/material/table';
import { TccFieldState, TccKeyValuePair } from '../../../odata/models/shared.model';
import { TccDialogWindowService } from '../../services/tcc-dialog-window/tcc-dialog-window.service';
import { TccDesktopToMask } from '../../../shared/services/tcc-desktop-to-mask/tcc-desktop-to-mask.service';
import { TccInputMask } from '../../../shared/models/inputMask.model';
import { TccClarcDatePipe } from '../../../shared/pipes/tcc-clarc-date/tcc-clarc-date.pipe';
import { TccTableCheckboxControllerDirective } from '../../../shared/directives/tcc-table-checkbox-controller/tcc-table-checkbox-controller.directive';
import { TccTranslationPipe } from '../../../shared/pipes/tcc-translation/tcc-translation.pipe';
import { TccBankersRoundingPipe } from '../../../shared/pipes/tcc-bankers-rounding/tcc-bankers-rounding.pipe';
import { TccGetUserExitService } from '../../../shared/services/tcc-get-user-exit/tcc-get-user-exit.service';
import { MatDialog } from '@angular/material/dialog';
export declare namespace TccPosTable {
    interface posTableUserexitEvent {
        id: string;
        row: string;
    }
}
declare enum cellSize {
    small = "smallCell",
    medium = "mediumCell",
    large = "largeCell",
    extraLarge = "extraLargeCell"
}
export declare class TccPosTableComponent implements OnInit {
    private fb;
    dialog: TccDialogWindowService;
    matDialog: MatDialog;
    private datePipe;
    private translationPipe;
    private bankersRoundingPipe;
    private getUserexitService;
    checkDir: TccTableCheckboxControllerDirective<any>;
    posTable: any;
    rowSelect?: boolean;
    set tableData(value: Array<{
        [id: string]: {
            Value: any;
            Confidence: number;
        };
    }>);
    set columnConfig(tableElements: TccDesktopToMask.tableElements);
    disableFields: Array<string>;
    checkedBoxes: EventEmitter<{
        value: Array<number>;
    }>;
    onFocus: EventEmitter<{
        id: string;
        displayText: string;
        row: number;
    }>;
    onUserexit: EventEmitter<TccPosTable.posTableUserexitEvent>;
    onBlur: EventEmitter<{
        id: string;
        displayText: string;
        row: number;
    }>;
    onConfirm: EventEmitter<{
        id: string;
        displayText: string;
        row: number;
    }>;
    onDropdown: EventEmitter<{
        id: string;
        displayText: string;
        row: number;
    }>;
    changed: EventEmitter<{
        id: string;
        value: any;
        index: number;
    }>;
    component: TccPosTableComponent;
    private _data;
    dataSource: MatTableDataSource<unknown, import("@angular/material/paginator.d-DuJ-oYgT").M>;
    dataWithConfidence: Array<{
        [id: string]: {
            Value: any;
            Confidence: number;
        };
    }>;
    columnNames: {
        [propName: string]: string;
    };
    displayedColumns: Array<string>;
    typeConfig: {
        [propName: string]: TccDesktopToMask.tableElement;
    };
    colConfig: {
        [propName: string]: {
            enabled: boolean;
            visible: boolean;
            size: cellSize;
        };
    };
    inputType: {
        [propName: string]: string;
    };
    elementTypes: typeof TccInputMask.elementtype;
    fieldStates: Array<{
        [propName: string]: {
            state: TccFieldState;
            message: string;
        };
    }>;
    lastUsedField: {
        Id: string;
        rowIndex: number;
    };
    selectedRows: Array<number>;
    fields: Array<Object>;
    _refresh: number;
    userexitExecuted: boolean;
    tableForm: UntypedFormGroup;
    get data(): unknown[];
    get confidenceData(): {
        [id: string]: {
            Value: any;
            Confidence: number;
        };
    }[];
    private get rows();
    resetRows(): void;
    constructor(fb: UntypedFormBuilder, dialog: TccDialogWindowService, matDialog: MatDialog, datePipe: TccClarcDatePipe, translationPipe: TccTranslationPipe, bankersRoundingPipe: TccBankersRoundingPipe, getUserexitService: TccGetUserExitService);
    ngOnInit(): void;
    setValue(id: string, row: number, data: any): boolean;
    getValue(id: string, row: number): any;
    setRowConfidence(row: number, confidence: number): void;
    setFieldConfidence(id: string, row: number, confidence: number): void;
    private addRow;
    private getValidatorArray;
    private updateForm;
    patchForm(): void;
    getTableData(): unknown[];
    getTableDataWithConfidence(): {
        [id: string]: {
            Value: any;
            Confidence: number;
        };
    }[];
    onSelectFocus(id: string, row: number): void;
    setLastUsedField(id: string, row: number): void;
    openEditRowDialog(i: any): void;
    editRowCallback(result: any, rowIndex: number): void;
    checkboxEvent($event: {
        Entity: any;
        Value: boolean;
    } | {
        Value: boolean;
    }): void;
    setState(id: string, row: number, state: TccFieldState, message: string): boolean;
    cellEnterPress($event: any, cell: string, row: number): void;
    onInputFocus(id: string, row: number): void;
    onInputBlur(id: string, row: number): void;
    onDropDown(id: string, row: number): void;
    selectionChanged(column: string, row: number): void;
    onFieldChange(column: string, row: number): void;
    cellClick(column: string, rowIndex: number): void;
    getConfidenceState(confidence: number): {
        state: TccFieldState;
        message: string;
    };
    getFieldId(col: number): string;
    userExitEvent(col: string, row: string): void;
    getElementRef(col: string, row: number): ElementRef;
    getCount(): number;
    getFocused(): string;
    setFocused(id: string, row: number): boolean;
    getConfidence(id: string, row: number): number;
    getDisplayText(id: string): string;
    setDisplayText(id: string, text: string): void;
    getLastValue(): any;
    setLastValue(): void;
    getName(columnIndex: number): string;
    getPropertyValue(id: string, propName: string): any;
    SetProperties(id: string, enabled: boolean, visible: boolean): void;
    getRawValue(id: string, row: number): string;
    getChildren(id: string, row: number): any;
    getEnabled(id: string): boolean;
    setEnabled(id: string, enable: boolean): void;
    getVisible(id: string): boolean;
    setVisible(id: string, visible: boolean): void;
    getSelectionList(id: string): Array<TccKeyValuePair>;
    setSelectionList(id: string, list: Array<TccKeyValuePair>): void;
    addToSelectionList(id: string, list: Array<TccKeyValuePair>): void;
    clearSelectionList(id: string): void;
    clear(): boolean;
    deleteRow(row: number): boolean;
    getCellFocusColumn(): number;
    getCellFocusRow(): number;
    getSelection(): {
        [rowIndex: number]: Object;
    };
    insertRow(row?: number): boolean;
}
export {};
