export type ServiceManager = "cron" | "systemd" | "launchd"; export interface ServicePlanJob { readonly id: "minute" | "watchdog"; readonly interval_seconds: 60 | 900; readonly argv: readonly string[]; } export interface ServicePlan { readonly schema_version: 1; readonly manager: ServiceManager; readonly executable_path: string; readonly state_root: string; readonly workspace_root: string; readonly jobs: readonly ServicePlanJob[]; } export interface ServicePlanArtifact { readonly relative_path: string; readonly bytes: string; readonly sha256: string; } declare const GENERATED_SERVICE_PLAN: unique symbol; export interface GeneratedServicePlan { readonly [GENERATED_SERVICE_PLAN]: true; readonly plan: ServicePlan; readonly digest: string; readonly artifacts: readonly ServicePlanArtifact[]; } export interface PersistedServicePlanVerification { readonly verified: true; readonly directory: string; readonly digest: string; readonly manager: ServiceManager; readonly artifacts: readonly Readonly>[]; } export declare function generateServicePlan(options: { manager: ServiceManager; executablePath: string; stateRoot: string; workspaceRoot: string; packageRoot: string; }): GeneratedServicePlan; export declare function persistServicePlan(options: { generated: GeneratedServicePlan; outputRoot: string; }): Readonly<{ directory: string; statuses: readonly ("created" | "replayed")[]; }>; export declare function verifyPersistedServicePlan(options: { packageRoot: string; directory: string; expectedDigest: string; stateRoot: string; workspaceRoot: string; executablePath: string; manager: ServiceManager; }): PersistedServicePlanVerification; export declare function assertGeneratedServicePlan(value: unknown): asserts value is GeneratedServicePlan; export {};