import { type ServerSettingsService } from '../settings/settings.service.js'; import type { ServerInfo, ServicesRestartResponse } from '../../shared/server-info.js'; import { type ProviderAvailability } from '../../shared/provider-catalog.js'; export interface PreparedServicesRestart { response: ServicesRestartResponse; spawn: () => Promise; } export interface SystemServiceOptions { animactlScript?: string; commandPresent?: (command: string, args: string[]) => Promise; commit?: Promise | string; now?: () => Date; providerModels?: (command: string) => Promise; packageVersion?: () => Promise; projectRoot?: string; restartDelayMs?: number; settings?: ServerSettingsService; startedAt?: string; } export interface GrokModelCatalog { defaultModel: string; modelReasoningEfforts?: Record; models: string[]; } export declare class SystemServiceError extends Error { } export declare class SystemService { private readonly animactlScript; private readonly commandPresent; private readonly commit; private readonly now; private readonly providerModels; private readonly packageVersion; private readonly projectRoot; private readonly restartDelayMs; private readonly settings; private readonly startedAt; constructor(options?: SystemServiceOptions); providerAvailability(): Promise<{ providers: ProviderAvailability[]; }>; serverInfo(): Promise; serverStartedAt(): string; prepareServicesRestart(): PreparedServicesRestart; } export declare const defaultSystemService: SystemService; export declare function parseGrokModelsOutput(output: string): GrokModelCatalog; /** * Parse ACP initialize/session modelState into model ids + per-model effort menus. * Live Grok Build exposes `supportsReasoningEffort` and `reasoningEfforts` here; * models without that flag (e.g. composer) get an empty effort list. */ export declare function parseGrokAcpModelState(modelState: unknown): GrokModelCatalog | undefined; export declare function docsUrl(track: 'dev' | 'canary' | 'stable'): string; //# sourceMappingURL=system.service.d.ts.map