import { AfterViewChecked, AfterViewInit, ChangeDetectorRef, OnDestroy, OnInit, TemplateRef } from "@angular/core";
import { FormBuilder } from "@angular/forms";
import { ActivatedRoute, Router } from "@angular/router";
import { TranslateService } from "@ngx-translate/core";
import { EmployeeLookupService, WorkshiftLookupService } from "@senior-gestao-pessoas/hcm-entity-lookups";
import { FormField } from "@seniorsistemas/angular-components";
import { HotkeysService } from "angular2-hotkeys";
import { ConfirmationService, MessageService } from "primeng/api";
import { BaseHistoryService } from "../../../../core/entities/base-history/base-history.service";
import { CollectiveHistoryFiltersService } from "../../../../core/entities/collective-history-filters/collective-history-filters.service";
import { EmployeeService } from "../../../../core/entities/employee/employee.service";
import { WorkshiftGroup } from "../../../../core/entities/workshift-group/workshift-group";
import { WorkshiftGroupService } from "../../../../core/entities/workshift-group/workshift-group.service";
import { WorkshiftHistoryAdjustmentService } from "../../../../core/entities/workshift-history-adjustment/workshift-history-adjustment.service";
import { WorkshiftHistory } from "../../../../core/entities/workshift-history/workshift-history";
import { WorkshiftHistoryService } from "../../../../core/entities/workshift-history/workshift-history.service";
import { WorkshiftInformationHistoryService } from "../../../../core/entities/workshift-information-history/workshift-information-history.service";
import { CollectiveProcessType } from "../../../../core/enums/collective-process-type";
import { FocusService } from "../../../../shared/focus/focus.service";
import { ClockingEventTimeEvaluationGeneralService } from "../../../../shared/services/clocking-event-time-evaluation-general.service";
import { FieldCustomizationService } from "../../../../shared/services/field-customization.service";
import { PlatformService } from "../../../../shared/services/platform.service";
import { ClockingEventComponent } from "../../../clocking-event-component/clocking-event.component";
export declare class WorkshiftHistoryFormComponent extends ClockingEventComponent implements OnInit, OnDestroy, AfterViewInit, AfterViewChecked {
    private workshiftHistoryService;
    private router;
    private route;
    protected messageService: MessageService;
    private confirmationService;
    private formBuilder;
    protected translate: TranslateService;
    private hotkeysService;
    private fieldCustomization;
    private focusService;
    private workshiftGroupService;
    protected employeeService: EmployeeService;
    private cd;
    protected baseService: BaseHistoryService;
    private clockingEventFoundationGeneralService;
    protected platformService: PlatformService;
    private workshiftLookupService;
    protected collectiveService: CollectiveHistoryFiltersService;
    private workshiftHistoryAdjustmentService;
    private employeeLibService;
    private workshiftInformationHistoryService;
    static WORKSHIFT: string;
    static DOMAIN: string;
    static SERVICE: string;
    static HISTORY_NAME: string;
    localeConfig: any;
    currencyLocaleOptions: any;
    permissions: any;
    allPermissions: any;
    customizationPermission: {
        visualizar: false;
    };
    loading: boolean;
    showLoader: boolean;
    isManager: boolean;
    requiredWorkshiftGroup: boolean;
    mainPanelCollapsed: boolean;
    workshiftGroupLookupSuggestions: WorkshiftGroup[];
    workshiftGroupLookupDisplayFields: string[];
    workshiftGroupAdvancedDisplayFields: string[];
    workshiftGroupSearchFields: FormField[];
    workshiftGroupSearchGridFields: FormField[];
    workshiftGroupSearchGridData: WorkshiftGroup[];
    workshiftGroupSearchTotalRecords: number;
    labelEmployee: string;
    customTemplate: TemplateRef<any>;
    customFormFields: TemplateRef<any>;
    collectiveProcessType: CollectiveProcessType;
    eSocialWorkingHoursTypeOptions: {
        label: string;
        value: string;
    }[];
    protected routeParams: any;
    constructor(workshiftHistoryService: WorkshiftHistoryService, router: Router, route: ActivatedRoute, messageService: MessageService, confirmationService: ConfirmationService, formBuilder: FormBuilder, translate: TranslateService, hotkeysService: HotkeysService, fieldCustomization: FieldCustomizationService, focusService: FocusService, workshiftGroupService: WorkshiftGroupService, employeeService: EmployeeService, cd: ChangeDetectorRef, baseService: BaseHistoryService, clockingEventFoundationGeneralService: ClockingEventTimeEvaluationGeneralService, platformService: PlatformService, workshiftLookupService: WorkshiftLookupService, collectiveService: CollectiveHistoryFiltersService, workshiftHistoryAdjustmentService: WorkshiftHistoryAdjustmentService, employeeLibService: EmployeeLookupService, workshiftInformationHistoryService: WorkshiftInformationHistoryService);
    ngOnInit(): void;
    ngAfterViewChecked(): void;
    ngAfterViewInit(): void;
    ngOnDestroy(): void;
    setHotkeys(): void;
    isNew(): boolean;
    fieldIsNotNull(field: string): boolean;
    onRouteParamsChange(params: any): void;
    updateSuggestions(value: any): void;
    private buildWorkshiftGroupLabel;
    onRouteDataChange(data: any): void;
    onCancel(): void;
    onSendFile(filesToDelete: any, filesToCommit: any[]): import("rxjs").Observable<{}>;
    confirmBeforeSave(): void;
    infoBeforeSave(): void;
    onSave(): void;
    onSaveCollective(): void;
    onSaveSigle(): void;
    onDeleteCollective(): void;
    onDelete(): void;
    private doAfterProcessAndResetFormGroup;
    private resetFormGroup;
    onWorkshiftGroupLookupRequest(value: string, isOnlyOneResult?: boolean): void;
    onWorkshiftGroupSearchRequest(event: any): void;
    private getFormGroup;
    private getWorkshiftGroupSearchFields;
    private getWorkshiftGroupSearchGridFields;
    goBack(): void;
    private validateAllFormFields;
    private getSaveObservable;
    /**
     * Define o serviço a ser utilizado para salvar/atualizar/excluir o registro.
     * Se for do ponto cai dentro da primeiro condição, do contrário cai na segunda.
     *
     * @returns {WorkshiftHistoryAdjustmentService | WorkshiftHistoryService} - O serviço escolhido.
     */
    private defineService;
    private getDeleteObservable;
    private validateVisualization;
    private convertWorkshiftType;
    onClearWorkshift(): void;
    onSelectWorkshift(workshift: any, resetWorkshiftGroup?: boolean): void;
    private getFilterWorkshiftGroup;
    getSaveButtonPermissions(): boolean;
    getDeleteButtonPermissions(): boolean;
    getFormGeneralTitle(): string;
    private getCollectiveFormTitle;
    isUsingTableChange(): boolean;
    createHistoryDTO(startDate: any, dtoContent: any): WorkshiftHistory;
    clockingEventOnSave(): void;
}
