import { EventEmitter, OnInit, OnDestroy } from '@angular/core'; import { I18nService } from '../../../services/i18n'; import { IonInfiniteScroll } from '@ionic/angular/standalone'; import { InfiniteListMetadata, InfiniteListState, LoadMoreEvent } from './types'; import { RefreshEvent, RefresherMetadata } from '../../molecules/refresher/types'; import * as i0 from "@angular/core"; /** * Componente wrapper para listas con infinite scroll. * * @example * * * * * *

{{ user.bio }}

*
*
* * @example * * */ export declare class InfiniteListComponent implements OnInit, OnDestroy { private readonly skeletonService; private readonly cdr; protected readonly i18n: I18nService; infiniteScroll?: IonInfiniteScroll; /** Configuracion del componente */ props: InfiniteListMetadata; loadMore: EventEmitter; refresh: EventEmitter; stateChange: EventEmitter; itemsChange: EventEmitter; errorOccurred: EventEmitter; readonly items: import("@angular/core").WritableSignal; readonly state: import("@angular/core").WritableSignal; readonly hasMoreBottom: import("@angular/core").WritableSignal; readonly hasMoreTop: import("@angular/core").WritableSignal; readonly error: import("@angular/core").WritableSignal; readonly isInitialLoad: import("@angular/core").WritableSignal; private currentPage; private currentCursor; /** Progreso de carga (0-1 si totalCount conocido) */ readonly loadProgress: import("@angular/core").Signal; /** Props combinados con defaults */ get mergedProps(): InfiniteListMetadata; /** Config del refresher */ get refresherConfig(): RefresherMetadata; /** Componente de skeleton a usar */ get skeletonComponent(): import("@angular/core").Type; /** Inputs para el skeleton */ get skeletonInputs(): { config: unknown; }; /** Anuncio de estado para lectores de pantalla */ readonly statusAnnouncement: import("@angular/core").Signal; ngOnInit(): void; ngOnDestroy(): void; /** Funcion de tracking para ngFor */ trackByFn(index: number, item: T): unknown; /** Si debe mostrar el scroll inferior */ shouldShowBottomScroll(): boolean; /** Carga inicial de datos */ loadInitial(): Promise; /** Cargar mas items en la parte inferior */ loadBottom(): Promise; /** Cargar mas items en la parte superior */ loadTop(): Promise; /** Refresh - recargar desde cero */ refreshList(): Promise; /** Reintentar despues de error */ retry(): Promise; /** Reset completo */ reset(): Promise; /** Agregar items al inicio */ prependItems(newItems: T[]): void; /** Agregar items al final */ appendItems(newItems: T[]): void; /** Actualizar un item por indice */ updateItem(index: number, item: T): void; /** Remover un item por indice */ removeItem(index: number): void; /** Handler para evento de infinite scroll */ onInfiniteScroll(event: CustomEvent): Promise; /** Handler para evento de refresh */ onRefreshTriggered(event: RefreshEvent): Promise; private executeLoad; private handleError; static ɵfac: i0.ɵɵFactoryDeclaration, never>; static ɵcmp: i0.ɵɵComponentDeclaration, "val-infinite-list", never, { "props": { "alias": "props"; "required": false; }; }, { "loadMore": "loadMore"; "refresh": "refresh"; "stateChange": "stateChange"; "itemsChange": "itemsChange"; "errorOccurred": "errorOccurred"; }, never, never, true, never>; }