import { AfterViewInit, ElementRef, EventEmitter, OnDestroy, OnInit, QueryList } from '@angular/core';
import { IExpandable, TccIcon } from '../../../odata/models/shared.model';
import { TccODataService } from '../../../odata/services/tcc-odata/tcc-odata.service';
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';
import { AppContext } from '../../../shared/classes/app-context';
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;
    }
    interface options<T = any> {
        entity?: T;
        entityId?: string;
        entityName?: string;
        profileOptions?: TccChooseProfileThumbnail.Options;
        disableStandardThumbnail?: boolean;
        inputElements: TccInputMask.SectionElements<T>;
        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;
        disableChooseProfile?: boolean;
        contextMenuConfig?: TccContextMenu.option[];
        basePath?: string;
        buttonConfig?: TccSectionNavigationButtonConfig;
    }
}
export declare class TccStandardDetailsViewComponent<T> implements OnInit, AfterViewInit, OnDestroy {
    private factory;
    private snackBar;
    private matDialog;
    globalVarContext?: AppContext;
    dataCyStandardDetailsViewComponent: string;
    dataCyStandardDetailsViewContextMenu: boolean;
    dataCyStandardDetailsViewBasePath: boolean;
    inputMask: TccInputMaskComponent;
    bodyContent: ElementRef;
    selector: TccProfileImageSelectorComponent;
    inputMaskHTMLElementDirectives: QueryList<InputMaskHTMLElement>;
    set options(options: TccStandardDetailsView.options<T>);
    set entity(entity: T);
    set entityId(id: string);
    set headerTitle(headerTitle: string);
    set newElement(newElement: boolean);
    hide: boolean;
    changed: boolean;
    disableSetEntityId: boolean;
    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>;
    inputMaskInputButtonClick: EventEmitter<TccInputMask.eventTrigger>;
    _entityName: string;
    _profileOptions: TccChooseProfileThumbnail.Options;
    _disableStandardThumbnail: boolean;
    _inputElements: TccInputMask.SectionElements;
    inputOptions: TccInputMask.options;
    _entityPath: string;
    private _iconPath;
    private _entitySaveSuccessMessage;
    _entityLoadErrorMessage: string;
    _illustration: string;
    private _newElement;
    private _autoSave;
    _enableSave: boolean;
    private _setValueChangesFunction;
    _disableChooseProfile: boolean;
    _buttonConfig: TccSectionNavigationButtonConfig;
    _entity: T;
    _entityId: String;
    _headerTitle: string;
    service: TccODataService<T>;
    icon: TccIcon;
    private inputsLoaded;
    loading: boolean;
    _contextMenuConfig: TccContextMenu.option[];
    _basePath: string;
    private lockedState;
    locked: boolean;
    changeable: boolean;
    constructor(factory: TccODataServiceFactory, snackBar: TccSnackBarService, matDialog: MatDialog, globalVarContext?: AppContext);
    ngOnDestroy(): void;
    ngOnInit(): void;
    ngAfterViewInit(): void;
    loadEntity(): void;
    loadEntitySelectBy(selectBy: string[]): Observable<any>;
    private initObjectDetails;
    initInputElements(): void;
    private init;
    onChangeIcon(icon: TccIcon): void;
    setIconInEntity(): void;
    getSaveRequest(): Observable<T>;
    saveEntity(): void;
    setEntityChanges(): void;
    resetChanges(): void;
    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;
    onInputButtonClick(event: TccInputMask.eventTrigger): void;
}
