import { AfterViewInit, OnDestroy, OnInit, TemplateRef } from "@angular/core";
import { FormBuilder, FormGroup } from "@angular/forms";
import { ActivatedRoute, Router } from "@angular/router";
import { TranslateService } from "@ngx-translate/core";
import { FormField } from "@seniorsistemas/angular-components";
import { HotkeysService } from "angular2-hotkeys";
import { ConfirmationService } from "primeng/api";
import { MessageService } from "primeng/api";
import { Observable } from "rxjs";
import { Employee } from "../../../core/entities/employee/employee";
import { EmployeeService } from "../../../core/entities/employee/employee.service";
import { EmployeeScheduleData } from "../../../core/dtos/employee-schedule-data";
import { CompanyClockingEventIndications } from "../../../core/entities/company-clocking-event-indications/company-clocking-event-indications";
import { CompanyClockingEventIndicationsService } from "../../../core/entities/company-clocking-event-indications/company-clocking-event-indications.service";
import { WorkshiftChangeService } from "../../../core/entities/workshift-change/workshift-change.service";
import { WorkshiftGroup } from "../../../core/entities/workshift-group/workshift-group";
import { WorkshiftGroupService } from "../../../core/entities/workshift-group/workshift-group.service";
import { Workshift } from "../../../core/entities/workshift/workshift";
import { WorkshiftService } from "../../../core/entities/workshift/workshift.service";
import { FocusService } from "../../../shared/focus/focus.service";
import { FieldCustomizationService } from "../../../shared/services/field-customization.service";
import { WorkshiftChangeAdjustmentService } from "../../../core/entities/workshift-change-adjustment/workshift-change-adjustment.service";
export declare class WorkshiftChangeFormComponent implements OnInit, OnDestroy, AfterViewInit {
    private workshiftChangeService;
    private router;
    private route;
    private messageService;
    private confirmationService;
    private formBuilder;
    private translate;
    private hotkeysService;
    private fieldCustomization;
    private focusService;
    private workshiftGroupService;
    private workshiftService;
    private employeeService;
    private companyClockingEventIndicationsService;
    private readonly workshiftChangeAdjustmentService;
    localeConfig: any;
    localeTag: any;
    currencyLocaleOptions: any;
    permissions: any;
    bffPermissions: any;
    allPermissions: any;
    formGroup: FormGroup;
    loading: boolean;
    mainPanelCollapsed: boolean;
    workshiftGroupLookupSuggestions: WorkshiftGroup[];
    workshiftGroupLookupDisplayFields: string[];
    workshiftGroupAdvancedDisplayFields: string[];
    workshiftGroupLookupSeparator: string;
    workshiftGroupSearchFields: FormField[];
    workshiftGroupSearchGridFields: FormField[];
    workshiftGroupSearchGridData: WorkshiftGroup[];
    workshiftGroupSearchTotalRecords: number;
    workshiftLookupSuggestions: Workshift[];
    workshiftLookupDisplayFields: string[];
    workshiftAdvancedDisplayFields: string[];
    workshiftLookupSeparator: string;
    workshiftSearchFields: FormField[];
    workshiftSearchGridFields: FormField[];
    workshiftSearchGridData: Workshift[];
    workshiftSearchTotalRecords: number;
    selectedWorkshiftId: string;
    workshiftType: {
        label: string;
        value: string;
    }[];
    contractTypeOptions: {
        label: string;
        value: string;
    }[];
    employeeLookupSuggestions: Employee[];
    employeeLookupDisplayFields: string[];
    employeeLabelDisplayFields: string[];
    employeeLookupSeparator: string;
    employeeSearchFields: FormField[];
    employeeSearchGridFields: FormField[];
    employeeSearchGridData: Employee[];
    employeeSearchTotalRecords: number;
    workshiftChange: any;
    indications: CompanyClockingEventIndications[];
    customTemplate: TemplateRef<any>;
    customFormFields: TemplateRef<any>;
    cacheLimitDaysBackwardScheduling: Map<string, Date>;
    private workShiftId;
    private employeeId;
    private lastWorkshiftId;
    requiredChecker: WorkshiftTypeWorkshiftGroup;
    onSubmitObservable: Observable<any>;
    onLockedEmployeeChanges: Observable<EmployeeScheduleData>;
    lockedEmployee: EmployeeScheduleData;
    private onClose;
    private onLoadFormSubject;
    onCloseObservable: Observable<boolean>;
    onLoadForm: Observable<boolean>;
    private routeParams;
    private ngUnsubscribe;
    workshiftChangeSearchTitle: any;
    workshiftChangeSearchEmptyTitle: any;
    workshiftChangeFilterLabel: any;
    workshiftChangeFilterTitle: any;
    workshiftChangeClearLabel: any;
    workshiftChangeCancelLabel: any;
    workshiftChangeSelectLabel: any;
    workshiftChangeEmptyFieldLabel: any;
    workshiftSearchTotalRecordsLabel: any;
    workshiftGroupSearchTotalRecordsLabel: any;
    employeeSearchTotalRecordsLabel: any;
    constructor(workshiftChangeService: WorkshiftChangeService, router: Router, route: ActivatedRoute, messageService: MessageService, confirmationService: ConfirmationService, formBuilder: FormBuilder, translate: TranslateService, hotkeysService: HotkeysService, fieldCustomization: FieldCustomizationService, focusService: FocusService, workshiftGroupService: WorkshiftGroupService, workshiftService: WorkshiftService, employeeService: EmployeeService, companyClockingEventIndicationsService: CompanyClockingEventIndicationsService, workshiftChangeAdjustmentService: WorkshiftChangeAdjustmentService);
    ngOnInit(): void;
    private getCommonTranslate;
    patchValuesAndUpdateSuggestions(value: EmployeeScheduleData, result: any): void;
    private loadLockedEmployee;
    ngAfterViewInit(): void;
    ngOnDestroy(): void;
    setHotkeys(): void;
    isNew(): boolean;
    onRouteParamsChange(params: any): void;
    updateSuggestions(value: any): void;
    getSuggestionValue(displayFields: string[], ownerEntity: string, value: any, separator: string): any;
    onRouteDataChange(data: any): void;
    onCancel(): void;
    onSendFile(filesToDelete: any, filesToCommit: any[]): Observable<{}>;
    onSave(): void;
    onDelete(): void;
    finishOperation(): void;
    getProp(obj: any, path: any): any;
    private loadLabelFromEnum;
    private loadEnumFromLabel;
    onWorkshiftGroupLookupRequest(value: string): void;
    onWorkshiftGroupSearchRequest(event: any): void;
    onWorkshiftLookupRequest(value: string): void;
    onWorkshiftSearchRequest(event: any): void;
    onEmployeeLookupRequest(value: string): void;
    onEmployeeSearchRequest(event: any): void;
    private getFormGroup;
    private getWorkshiftGroupSearchFields;
    private getWorkshiftGroupSearchGridFields;
    private getWorkshiftSearchFields;
    private getWorkshiftSearchGridFields;
    private getEmployeeSearchFields;
    private getEmployeeSearchGridFields;
    private goBack;
    private validateAllFormFields;
    private getSaveObservable;
    private defineService;
    private getDeleteObservable;
    private validateVisualization;
    private startDateIsBeforeEndDate;
    private validLimitDaysBackwardScheduling;
    confirmBeforeSave(): void;
    private setWorkshiftGroupMandatory;
    private addMessage;
    getWorkshiftGroup(): string;
    private formatWorkshiftGroupBaseDate;
    verifyWorkshiftLookupDisabled(startDate?: Date, endDate?: Date): void;
    private disableFieldsOnEdit;
}
interface WorkshiftTypeWorkshiftGroup {
    isRequired: boolean;
}
export {};
