import { BabylonButtonI, BabylonImageI, BabylonTextInfoI } from '../../../../interfaces';
import { OnChanges, SimpleChanges, OnInit, OnDestroy } from '@angular/core';
import { BabylonGlobalItem } from '../../../../interfaces/babylon-global-item.interface';
import * as i0 from "@angular/core";
export declare class LisC3ImgTxtCtaComponent implements OnChanges, OnInit, OnDestroy {
    texts?: BabylonTextInfoI;
    items?: BabylonGlobalItem[];
    links?: BabylonButtonI[];
    additional1LikeMarca?: boolean;
    showCleanFilters: boolean;
    showFilters: boolean;
    tagName: string;
    selectedHotelType: string;
    selectedDestination: string;
    selectedBrand: string;
    hotelTypeOptions: string[];
    destinationOptions: string[];
    brandOptions: string[];
    filterLabelToSlug: Map<string, string>;
    destinationLabelToSlug: Map<string, string>;
    brandLabelToSlug: Map<string, string>;
    private route;
    private cdr;
    private qpSub?;
    private pendingDestination?;
    private _filteredItemsRaw;
    /**
     * Devuelve las imágenes sincronizadas con filteredItems, evitando incongruencias.
     */
    get imagesToShow(): any[];
    private findAndSelectDestination;
    /**
     * Devuelve el label del botón en la posición index, buscando en item.buttons[index].label
     * y si no existe, en item.multimedia.imagenes[0].buttons[index].label
     */
    getButtonLabel(item: BabylonGlobalItem, index: number): string | undefined;
    getButtonUrl(item: BabylonGlobalItem, index: number): string | undefined;
    getButtonLinkType(item: BabylonGlobalItem, index: number): any;
    buildMenuUrl(item: BabylonButtonI | undefined): string;
    ngOnChanges(changes: SimpleChanges): void;
    ngOnInit(): void;
    ngOnDestroy(): void;
    /**
     * Devuelve un array normalizado de BabylonGlobalItem
     */
    get normalizedItems(): BabylonGlobalItem[];
    getFirstImageByTag(tagName: string, imagenes: BabylonImageI[]): BabylonImageI | undefined;
    get filteredItems(): BabylonGlobalItem[];
    private updateFilteredItems;
    get hasActiveFilters(): boolean;
    onHotelTypeChange(value: string | undefined): void;
    onDestinationChange(value: string | undefined): void;
    onBrandChange(value: string | undefined): void;
    clearFilters(): void;
    trackFilter(index: number): number;
    trackOption(index: number): number;
    trackOffer(index: number): number;
    static ɵfac: i0.ɵɵFactoryDeclaration<LisC3ImgTxtCtaComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<LisC3ImgTxtCtaComponent, "lis-c3-img-txt-cta", never, { "texts": { "alias": "texts"; "required": false; }; "items": { "alias": "items"; "required": false; }; "links": { "alias": "links"; "required": false; }; "additional1LikeMarca": { "alias": "additional1LikeMarca"; "required": false; }; "showCleanFilters": { "alias": "showCleanFilters"; "required": false; }; "showFilters": { "alias": "showFilters"; "required": false; }; }, {}, never, never, true, never>;
}
