import { ConfigService } from "@nestjs/config"; import { Queue } from "bullmq"; import { ClsService } from "nestjs-cls"; import { AiStatus } from "../../../common/enums/ai.status"; import { BaseConfigInterface } from "../../../config/interfaces/base.config.interface"; import { BlockNoteService } from "../../../core/blocknote/services/blocknote.service"; import { JsonApiService } from "../../../core/jsonapi/services/jsonapi.service"; import { AbstractService } from "../../../core/neo4j/abstracts/abstract.service"; import { AppLoggingService } from "../../../core/logging/services/logging.service"; import { WebSocketService } from "../../../core/websocket/services/websocket.service"; import { ChunkRepository } from "../../chunk/repositories/chunk.repository"; import { ChunkService } from "../../chunk/services/chunk.service"; import { ChunkerService } from "../../chunker/services/chunker.service"; import { HowTo, HowToDescriptor } from "../entities/how-to"; import { HowToRepository } from "../repositories/how-to.repository"; export declare class HowToService extends AbstractService { private readonly howToRepository; private readonly chunkService; private readonly chunkerService; private readonly blockNoteService; private readonly webSocketService; private readonly chunkRepository; private readonly chunkQueue; private readonly logger; protected readonly descriptor: import("../../..").EntityDescriptor; private readonly jobNames; constructor(jsonApiService: JsonApiService, howToRepository: HowToRepository, clsService: ClsService, chunkService: ChunkService, chunkerService: ChunkerService, blockNoteService: BlockNoteService, webSocketService: WebSocketService, chunkRepository: ChunkRepository, chunkQueue: Queue, configService: ConfigService, logger: AppLoggingService); /** * Queue a HowTo for AI processing. * Converts BlockNote JSON to Markdown, then delegates to _chunkAndQueue. * * A whitespace-only guide settles at `completed` without enqueueing anything, * and any throw inside the pipeline settles at `failed` before rethrowing — * see _chunkAndQueue. */ queueHowToForProcessing(params: { howToId: string; description: string; }): Promise; /** * Private: mark in-progress, delete prior chunks, chunk the markdown, enqueue jobs. */ private _chunkAndQueue; findPublishedList(params: { query: any; howToType?: string; }): Promise; findPublishedArticle(params: { howToType: string; slug: string; }): Promise; findRelatedList(params: { howToType: string; slug: string; query: any; }): Promise; addRelated(params: { howToId: string; relatedId: string; }): Promise; removeRelated(params: { howToId: string; relatedId: string; }): Promise; /** * Re-chunk every HowTo (seeded nodes get no chunks from a raw-Cypher migration). * Per-item failures (e.g. legacy plain-text descriptions that are not BlockNote JSON) * are logged and skipped, never silently dropped. */ reindexAll(): Promise; /** * Update AI status and broadcast progress via WebSocket. */ updateAiStatus(params: { id: string; aiStatus: AiStatus; }): Promise; } //# sourceMappingURL=how-to.service.d.ts.map