import { AfterViewInit, ElementRef, EventEmitter, OnInit, QueryList } from '@angular/core';
import { IExpandable, TccIcon } from '../../../odata/models/shared.model';
import { TccODataServiceFactory } from '../../../odata/factories/tcc-odata-service/tcc-odata-service.factory';
import { TccChooseProfileThumbnail } from '../tcc-choose-profile-thumbnail/tcc-choose-profile-thumbnail.component';
import { TccProfileImageSelectorComponent } from '../tcc-profile-image-selector/tcc-profile-image-selector.component';
import { TccInputMaskComponent } from '../../../shared/components/tcc-input-mask/tcc-input-mask.component';
import { TccInputMask } from '../../../shared/models/inputMask.model';
import { Observable } from 'rxjs';
import { TccSnackBarService } from '../../services/tcc-snackbar/tcc-snackbar.service';
import { TccContextMenu, TccContextMenuServiceNamespace, TccSectionNavigationButtonConfig } from '../../../shared';
import { MatDialog } from '@angular/material/dialog';
import { InputMaskHTMLElement } from '../../../shared/components/tcc-input-mask/directives/input-mask-htmlelement';
export declare namespace TccStandardDetailsView {
    interface Element extends IExpandable {
        Id: string;
    }
    interface initEvent<T> {
        TccInputMaskComponent: TccInputMaskComponent;
        Entity: T;
    }
    interface setValueChangesEvent<T> {
        Changes: TccInputMask.valueChanges;
        Entity: T;
    }
    interface onValueChangesEvent<T> {
        Change: TccInputMask.eventOutput;
        Entity: T;
    }
}
export declare class TccStandardDetailsViewComponent<T> implements OnInit, AfterViewInit {
    private factory;
    private snackBar;
    private matDialog;
    private dataCyStandardDetailsViewComponent;
    private dataCyStandardDetailsViewContextMenu;
    private dataCyStandardDetailsViewBasePath;
    inputMask: TccInputMaskComponent;
    bodyContent: ElementRef;
    selector: TccProfileImageSelectorComponent;
    inputMaskHTMLElementDirectives: QueryList<InputMaskHTMLElement>;
    set entity(entity: T);
    set entityId(entityId: string);
    entityName: string;
    profileOptions: TccChooseProfileThumbnail.Options;
    disableStandardThumbnail: boolean;
    inputElements: TccInputMask.SectionElements;
    entityPath: string;
    iconPath: string[];
    entitySaveSuccessMessage: string;
    entityLoadErrorMessage: string;
    headerTitle: string;
    illustration: string;
    newElement: boolean;
    autoSave: boolean;
    enableSave: boolean;
    setValueChangesFunction: (Entity: T, Changes: TccInputMask.valueChanges) => void;
    changed: boolean;
    disableChooseProfile: boolean;
    set contextMenuConfig(contextMenuConfig: TccContextMenu.option[]);
    set basePath(basePath: string);
    buttonConfig: TccSectionNavigationButtonConfig;
    initInputMask: EventEmitter<TccStandardDetailsView.initEvent<T>>;
    onChangeValue: EventEmitter<TccStandardDetailsView.onValueChangesEvent<T>>;
    onSave: EventEmitter<TccStandardDetailsView.setValueChangesEvent<T>>;
    afterSave: EventEmitter<T>;
    inputMaskEntityValuesSet: EventEmitter<T>;
    inputMaskFocusEvent: EventEmitter<TccInputMask.eventTrigger>;
    contextMenuEmitter: EventEmitter<TccContextMenuServiceNamespace.contextMenuClickEvent>;
    onButtonClick: EventEmitter<TccInputMask.eventTrigger>;
    _entity: T;
    _entityId: String;
    private service;
    icon: TccIcon;
    private inputsLoaded;
    loading: boolean;
    _contextMenuConfig: TccContextMenu.option[];
    _basePath: string;
    constructor(factory: TccODataServiceFactory, snackBar: TccSnackBarService, matDialog: MatDialog);
    ngOnInit(): void;
    ngAfterViewInit(): void;
    loadEntity(): void;
    loadEntitySelectBy(selectBy: string[]): Observable<any>;
    private initObjectDetails;
    initInputElements(): void;
    private init;
    onChangeIcon(icon: TccIcon): void;
    private setIconInEntity;
    saveEntity(): void;
    private resetChanges;
    scrollTo(event: any): void;
    _onButtonClick(event: any): void;
    _onChangeValue(event: TccInputMask.eventOutput): void;
    _inputMaskEntityValuesSet(): void;
    _inputMaskFocusEvent(event: TccInputMask.eventTrigger): void;
    contextMenuOptionClick(event: TccContextMenuServiceNamespace.contextMenuClickEvent): void;
}
