import { ChangeDetectorRef, EventEmitter, OnInit, Renderer2 } from '@angular/core';
import { FormControl, FormGroup } from '@angular/forms';
import { MatDialogRef } from '@angular/material/dialog';
import { Calendar } from 'primeng/calendar';
import { Dropdown } from 'primeng/dropdown';
import { BabylonButtonI } from '../../../interfaces/babylon-button.interface';
import { BabylonInputI } from '../../../interfaces/babylon-input.interface';
import { BabylonGuestValueI } from '../babylon-engine/babylon-engine.component';
import { guestsValue } from '../babylon-guests-popup/babylon-guests-popup.component';
import { BabylonGuestsPopupI } from '../babylon-guests-popup/babylon-guests-popup.interface';
import * as i0 from "@angular/core";
export declare class BabylonEngineModalComponent implements OnInit {
    private cdr;
    private readonly dialogRef;
    private renderer;
    datepicker: Calendar;
    hotelsDropdown: Dropdown;
    defaultPromoCode?: string;
    modal?: boolean;
    datepickerData?: BabylonInputI;
    guestsInput?: BabylonInputI;
    promoInput?: BabylonInputI;
    button?: BabylonButtonI;
    guests?: BabylonGuestsPopupI;
    title?: string;
    subtitle?: string;
    lang?: string;
    url?: string;
    codigo?: string;
    glValue?: string;
    onlyAdults?: boolean;
    showAges: boolean;
    hotelsInput?: BabylonInputI;
    hotels?: BabylonHotelsModalDropdownI;
    hotelsPlaceholder?: string;
    openInNewWindow?: boolean;
    close: EventEmitter<any>;
    datepickerValue: string;
    minDate: Date;
    hotelsValue: any;
    formModal: FormGroup<{
        hotels: FormControl<null | undefined>;
        dates: FormControl<string | null>;
        guests: FormControl<string | null>;
        promo: FormControl<string | null>;
    }>;
    guestsValue: string;
    guestsValueSeparates: BabylonGuestValueI;
    generatedUrl: string;
    private unsubscribe$;
    showingGuests: boolean;
    private platformId;
    constructor(cdr: ChangeDetectorRef, dialogRef: MatDialogRef<BabylonEngineModalComponent>, renderer: Renderer2);
    ngOnInit(): void;
    toggleHotelsDropdown(): void;
    handleDropdownChange(event: any): void;
    toggleShowingGuests(): void;
    guestsChange(data: guestsValue): void;
    btnClick(e: Event): void;
    closeModal(): void;
    updateGeneratedUrl(): void;
    private appendGuestAges;
    private formatDate;
    get defaultGuestsValue(): guestsValue;
    saveEngineData(datein?: string, dateout?: string): void;
    loadEngineData(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<BabylonEngineModalComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<BabylonEngineModalComponent, "lib-babylon-engine-modal", never, { "defaultPromoCode": { "alias": "defaultPromoCode"; "required": false; }; "modal": { "alias": "modal"; "required": false; }; "datepickerData": { "alias": "datepickerData"; "required": false; }; "guestsInput": { "alias": "guestsInput"; "required": false; }; "promoInput": { "alias": "promoInput"; "required": false; }; "button": { "alias": "button"; "required": false; }; "guests": { "alias": "guests"; "required": false; }; "title": { "alias": "title"; "required": false; }; "subtitle": { "alias": "subtitle"; "required": false; }; "lang": { "alias": "lang"; "required": false; }; "url": { "alias": "url"; "required": false; }; "codigo": { "alias": "codigo"; "required": false; }; "glValue": { "alias": "glValue"; "required": false; }; "onlyAdults": { "alias": "onlyAdults"; "required": false; }; "showAges": { "alias": "showAges"; "required": false; }; "hotelsInput": { "alias": "hotelsInput"; "required": false; }; "hotels": { "alias": "hotels"; "required": false; }; "hotelsPlaceholder": { "alias": "hotelsPlaceholder"; "required": false; }; "openInNewWindow": { "alias": "openInNewWindow"; "required": false; }; }, { "close": "close"; }, never, never, true, never>;
}
export interface BabylonHotelsModalDropdownI {
    placeholder?: string;
    options?: BabylonHotelModalDropdownOption[];
    title?: string;
    smallTitle?: string;
    error?: string;
}
export interface BabylonHotelModalDropdownOption {
    name?: string;
    ticker?: string;
    url?: string;
    id?: number;
}
