import type { ProjectRegistration } from '../../types'; import { getCliEntryPoint, getNodePath } from './node-paths'; import type { ServiceConfig, ServiceOptions, ServiceStatus, ServiceStrategy } from './types'; export { getCliEntryPoint, getNodePath }; /** * Returns the scheduled-task name for a given project. * Format: AISupportAgent-{tenantCode}-{projectCode} (sanitized). * * The Windows Task Scheduler accepts backslashes as folder separators in task * names, so any backslash in a code would silently create a nested task folder. * sanitizeServiceNameSegment() already strips it (along with other non `[a-z0-9-]` chars). */ export declare function getProjectTaskName(tenantCode: string, projectCode: string): string; /** * Lists all per-project scheduled tasks registered by this CLI. * * Queries Task Scheduler for tasks whose name starts with `${TASK_PREFIX}-`. * Returns an empty list when schtasks is unavailable or no task matches. */ export declare function getAllProjectTasks(): Array<{ taskName: string; }>; /** * Generate the scheduled-task XML that runs a per-project wrapper script. * The action invokes cmd.exe on the generated run.cmd so the wrapper can set * env vars and run `docker run` without leaking secrets onto the task's * command line (which is world-readable via `schtasks /Query /XML`). */ export declare function generateProjectTaskXml(opts: { wrapperScriptPath: string; }): string; /** * Generate a cmd.exe batch wrapper that runs docker for one project. * * Mirrors the Linux/Darwin wrappers: bind-mounts the per-project config dir and * project dir, passes the token / api url / API keys as `-e` env vars, resolves * the installed CLI version at runtime, auto-builds the image if missing, and * removes any stale container before `docker run`. */ export declare function generateWin32WrapperScript(opts: { imageName: string; tenantCode: string; projectCode: string; projectConfigHostDir: string; projectDir?: string; token: string; apiUrl: string; anthropicApiKey?: string; claudeCodeOauthToken?: string; codexApiKey?: string; codexAccessToken?: string; verbose?: boolean; }): string; /** * Write the run.cmd wrapper and register/refresh the scheduled task for one * project. Idempotent: deletes any existing task with the same name first so * token/config updates take effect. */ export declare function writeAndRegisterProjectTask(project: ProjectRegistration, options?: { verbose?: boolean; }): void; export declare class Win32ServiceStrategy implements ServiceStrategy { install(options: ServiceOptions): void; uninstall(): void; start(): void; stop(): void; restart(): void; status(): ServiceStatus; } export declare function generateTaskXml(options: ServiceConfig): string; //# sourceMappingURL=win32-service.d.ts.map