import { Type } from '@angular/core'; import { SkeletonTemplateName, SkeletonTemplateConfig, RegisteredSkeletonTemplate, SkeletonConfig } from './types'; import * as i0 from "@angular/core"; /** * Servicio para gestionar templates de skeleton y estados de carga globales. * * @example * // En un componente * skeleton = inject(SkeletonService); * * // Registrar template personalizado * skeleton.registerTemplate('my-custom', MyCustomSkeletonComponent); * * // Obtener componente de template * const component = skeleton.getTemplate('list'); * * // Gestionar estados de carga globales * skeleton.setLoadingState('dashboard', true); * const isDashboardLoading = skeleton.loadingState('dashboard'); */ export declare class SkeletonService { private readonly _config; private readonly _templates; private readonly _loadingStates; private _initialized; /** Configuracion actual (solo lectura) */ readonly config: import("@angular/core").Signal; /** Templates registrados (solo lectura) */ readonly templates: import("@angular/core").Signal>; /** Estado de carga global (cualquier estado registrado esta cargando) */ readonly isAnyLoading: import("@angular/core").Signal; /** Cantidad de templates registrados */ readonly templateCount: import("@angular/core").Signal; /** * Configura el servicio de skeleton. * Llamado por provideValtechSkeleton(). */ configure(config: SkeletonConfig): void; /** * Registra un template de skeleton personalizado. * * @param name Nombre unico del template * @param component Componente a usar * @param defaultConfig Configuracion por defecto opcional */ registerTemplate(name: string, component: Type, defaultConfig?: SkeletonTemplateConfig): void; /** * Obtiene un template de skeleton registrado. * * @param name Nombre del template * @returns Template registrado o undefined si no existe */ getTemplate(name: SkeletonTemplateName | string): RegisteredSkeletonTemplate | undefined; /** * Verifica si un template esta registrado. * * @param name Nombre del template * @returns true si el template existe */ hasTemplate(name: string): boolean; /** * Obtiene todos los nombres de templates registrados. * * @returns Array de nombres de templates */ getTemplateNames(): string[]; /** * Registra un estado de carga nombrado. * Util para indicadores de carga globales. * * @param key Identificador unico del estado * @param isLoading Estado de carga */ setLoadingState(key: string, isLoading: boolean): void; /** * Obtiene el estado de carga para una clave especifica. * * @param key Identificador del estado * @returns Estado de carga actual */ getLoadingState(key: string): boolean; /** * Crea un signal computado para un estado de carga especifico. * * @param key Identificador del estado * @returns Signal reactivo del estado de carga */ loadingState(key: string): import("@angular/core").Signal; /** * Obtiene todas las claves de estados de carga activos. * * @returns Array de claves con estado de carga activo */ getActiveLoadingKeys(): string[]; /** * Limpia todos los estados de carga. */ clearLoadingStates(): void; /** * Limpia un estado de carga especifico. * * @param key Identificador del estado a limpiar */ clearLoadingState(key: string): void; /** * Ejecuta una funcion async con tracking de estado de carga. * * @param key Identificador del estado * @param fn Funcion async a ejecutar * @returns Resultado de la funcion */ withLoading(key: string, fn: () => Promise): Promise; /** * Obtiene la configuracion de animacion por defecto. */ get animated(): boolean; /** * Obtiene el delay por defecto. */ get defaultDelay(): number; /** * Obtiene el tiempo minimo por defecto. */ get defaultMinTime(): number; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵprov: i0.ɵɵInjectableDeclaration; }