import { Observable } from 'rxjs'; import { ValtechAuthConfig } from '../auth/types'; import type { PdfGenerateRequest, PdfResult, PdfJob, PdfJobEnqueued } from './types'; import { EventMeta } from '../events/meta'; import * as i0 from "@angular/core"; /** * Servicio de PDF de plataforma (ADR-042). Reutilizable por cualquier app. * * El JWT del usuario se inyecta automáticamente por el authInterceptor * (configurado vía provideValtechAuth). El app-id se toma de ValtechAuthConfig. * * Tres modos: * - generate() → HTTP sync: genera y devuelve la URL presignada. * - createJob() → async: encola un job (delivery.mode='async') y devuelve * { jobId, status:'queued' }. El PDF se genera fuera de banda. * - watchJob() → observa el estado del job en tiempo real (Firestore), * proyectado por el backend al completarse. * * Fuentes (en los 3 modos): * - source.template → renderiza una plantilla desde DynamoDB * - source.html → HTML arbitrario provisto por el caller * - source.url → URL pública (Puppeteer la carga) */ export declare class PdfService { private config; private http; private auth; private collections; constructor(config: ValtechAuthConfig | null); private get baseUrl(); private get appIdHeader(); generate(req: PdfGenerateRequest): Observable; generateAndDownload(req: PdfGenerateRequest, filename?: string): Observable; /** * Encola un job PDF async. El backend publica `pdf.generate.requested`; el PDF * Lambda lo genera fuera de banda y, al completar, proyecta el estado a * Firestore. Usar watchJob(jobId) para observar el resultado en tiempo real. */ createJob(req: PdfGenerateRequest, meta?: EventMeta): Observable; /** * Observa el estado de un job PDF async en tiempo real (onSnapshot del doc * `apps/{appId}/orgs/{orgId}/pdf-jobs/{jobId}`). Emite null si no hay org * activa o hasta que el doc exista. Cuando el job completa/falla, el doc trae * status + url. Cierra la suscripción al completar tu propia lógica. */ watchJob(jobId: string): Observable; private _download; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵprov: i0.ɵɵInjectableDeclaration; }