import http from "node:http"; import { FileSystemManager } from "@superblocksteam/vite-plugin-file-sync"; import type { AiService, LockService, SyncService } from "@superblocksteam/vite-plugin-file-sync"; import type { GitService } from "@superblocksteam/vite-plugin-file-sync/git-service"; import { OperationQueue } from "@superblocksteam/vite-plugin-file-sync/operation-queue"; import type { TokenManager } from "../dev-utils/token-manager.js"; import type { AiServiceEvent } from "./ai-service-events.mjs"; import type { DevFileClient } from "./dev-file-client.mjs"; export declare function handleAiServiceEvent(aiService: AiService | undefined, event: AiServiceEvent, { fileSyncManager, }?: { fileSyncManager?: Pick; }): Promise; export declare function createAiServiceHttpHandler({ handleEvent, logger: loggerOverride, }?: { handleEvent?: (event: AiServiceEvent) => Promise | void; logger?: (...messages: unknown[]) => void; }): http.RequestListener; export declare function createAiServiceServer({ handleEvent, logger, startSocketServer, }?: { handleEvent?: (event: AiServiceEvent) => Promise | void; logger?: (...messages: unknown[]) => void; startSocketServer?: (server: http.Server, path: string) => void; }): http.Server; export declare function createAiServiceStandbyServer({ authorize, logger: loggerOverride, start, }: { authorize: (token: string) => Promise; logger?: (...messages: unknown[]) => void; start: (token: string, server: http.Server) => Promise; }): http.Server; /** * Wire orderly AI-service teardown (HTTP/socket close, integration cache * cleanup, lock release) to the caller's abort signal AND process * termination signals, so Kubernetes SIGTERM gets the same shutdown as an * in-process abort. Shutdown runs at most once across all triggers. */ export declare function registerAiServiceShutdown({ aiService, closeSockets, devFileClient, httpServer, lockService, logger: loggerOverride, proc, signal, }: { aiService?: AiService; closeSockets?: () => Promise; devFileClient?: DevFileClient; httpServer: http.Server; lockService?: LockService; logger?: (...messages: unknown[]) => void; proc?: Pick; signal?: AbortSignal; }): void; export declare function startAiServiceServer({ aiService, devFileClient, applicationId, activateGitService, cwd, fsOperationQueue, gitBootstrapFailed, gitService, lockService, logger: loggerOverride, port, superblocksBaseUrl, syncService, server: standbyServer, tokenManager, }: { aiService?: AiService; devFileClient?: DevFileClient; applicationId: string; activateGitService?: () => Promise; cwd: string; fsOperationQueue: OperationQueue; gitBootstrapFailed: boolean; gitService?: GitService; lockService?: LockService; logger?: (...messages: unknown[]) => void; port: number; superblocksBaseUrl?: string; syncService?: SyncService; server?: http.Server; tokenManager?: TokenManager; }): Promise; //# sourceMappingURL=ai-service.d.mts.map