import { EventEmitter, OnInit } from '@angular/core';
import { UntypedFormBuilder, UntypedFormGroup } from '@angular/forms';
import * as i0 from "@angular/core";
export declare class AppointmentSelfSchedulerComponent implements OnInit {
    fb: UntypedFormBuilder;
    success: EventEmitter<any>;
    error: EventEmitter<any>;
    onClose: EventEmitter<any>;
    rescheduleDate: UntypedFormGroup;
    showSchedulerPopup: boolean;
    showSchedulerConfirmationPopup: boolean;
    confirmedDate: any;
    availableDates: Date[];
    invalidDates: Date[];
    showTimeSlotPopup: boolean;
    selectedDate: Date | null;
    timeSlots: string[];
    selectedTimeSlot: string | null;
    constructor(fb: UntypedFormBuilder);
    /** GET mapping call to /scheduler/available-slots/ - to give available dates to allow to display and disable rest in the p-calendar*/
    ngOnInit(): void;
    generateTimeSlots(date: Date): void;
    /** Will iterate through dates fetched from GET mapping, and disable dates not available in p-calendar*/
    generateInvalidDates(): void;
    /** Will set the time slots availale for a given date in p-calendar*/
    onDateSelect(date: Date): void;
    /** Will update value for selected time slot*/
    onTimeSlotSelect(slot: string): void;
    close(): void;
    closeConfirmationPopup(): void;
    confirm(): void;
    get newAppointmentDate(): import("@angular/forms").AbstractControl<any, any>;
    get timeSlot(): import("@angular/forms").AbstractControl<any, any>;
    static ɵfac: i0.ɵɵFactoryDeclaration<AppointmentSelfSchedulerComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<AppointmentSelfSchedulerComponent, "app-appointment-self-scheduler", never, { "showSchedulerPopup": { "alias": "showSchedulerPopup"; "required": false; }; "showSchedulerConfirmationPopup": { "alias": "showSchedulerConfirmationPopup"; "required": false; }; }, { "success": "success"; "error": "error"; "onClose": "onClose"; }, never, never, false, never>;
}
//# sourceMappingURL=appointment-self-scheduler.component.d.ts.map