import { TemplateRef } from '@angular/core'; import { Color } from '@ionic/core'; /** * Estado del componente refresher. */ export type RefresherState = 'idle' | 'pulling' | 'refreshing' | 'completing'; /** * Tipos de spinner disponibles. */ export type RefresherSpinnerType = 'circular' | 'crescent' | 'dots' | 'lines-sharp'; /** * Evento emitido cuando se activa el refresh. */ export interface RefreshEvent { /** Llamar cuando la operacion de refresh completa */ complete: () => void; /** Llamar para cancelar el refresh */ cancel: () => void; /** Timestamp cuando inicio el refresh */ timestamp: Date; } /** * Evento de progreso durante el gesto de pull. */ export interface RefreshPullEvent { /** Valor de progreso entre 0 y 1 */ progress: number; /** Si se ha alcanzado el umbral de pull */ thresholdReached: boolean; } /** * Configuracion de indicador personalizado. */ export interface RefresherIndicatorConfig { /** Template personalizado para estado pulling */ pullingTemplate?: TemplateRef<{ progress: number; }>; /** Template personalizado para estado refreshing */ refreshingTemplate?: TemplateRef; /** Template personalizado para estado completing */ completingTemplate?: TemplateRef; } /** * Metadata para el componente val-refresher. */ export interface RefresherMetadata { /** Si el refresher esta deshabilitado */ disabled?: boolean; /** Umbral de pull en pixels (default: 70) */ pullThreshold?: number; /** Distancia maxima de pull en pixels (default: 200) */ pullMax?: number; /** Factor de resistencia del pull (0-1, default: 0.5) */ pullFactor?: number; /** Duracion de snap back en ms (default: 280) */ snapbackDuration?: number; /** Duracion de cierre en ms (default: 280) */ closeDuration?: number; /** Color del spinner */ color?: Color; /** Tipo de spinner */ spinnerType?: RefresherSpinnerType; /** Texto mostrado mientras se arrastra */ pullingText?: string; /** Texto mostrado mientras se actualiza */ refreshingText?: string; /** Configuracion de indicador personalizado */ indicatorConfig?: RefresherIndicatorConfig; /** Habilitar feedback haptico en movil (default: true) */ hapticFeedback?: boolean; /** Modo web - habilita pull-to-refresh en navegadores desktop */ webMode?: boolean; /** Identificador unico */ token?: string; /** Key de traduccion para texto pulling */ pullingTextKey?: string; /** Key de traduccion para texto refreshing */ refreshingTextKey?: string; /** Clase CSS adicional */ contentClass?: string; } /** * Valores por defecto para el refresher. */ export declare const DEFAULT_REFRESHER_METADATA: Partial;