export type ServiceLifecycleStatus = 'draft' | 'active' | 'paused' | 'disabled' | 'archived' | 'error' | 'needs_attention';
export interface ServiceLifecycleState {
    service_id: string;
    status: ServiceLifecycleStatus;
    previous_status?: ServiceLifecycleStatus;
    error_message?: string;
    health_check_at?: string;
    created_at: string;
    updated_at: string;
}
export interface ServiceTransitionResult {
    success: boolean;
    from: ServiceLifecycleStatus;
    to: ServiceLifecycleStatus;
    error?: string;
}
/** Template for creating new services from a known pattern. */
export interface ServiceTemplate {
    template_id: string;
    name: string;
    description: string;
    default_commands: string[];
    default_schedule?: string;
    default_state_schema: Record<string, string>;
}
export declare function canTransition(from: ServiceLifecycleStatus, to: ServiceLifecycleStatus): boolean;
export declare const SERVICE_TEMPLATES: ServiceTemplate[];
export declare function getServiceTemplate(templateId: string): ServiceTemplate | undefined;
export declare function getServiceLifecycle(projectDir: string, serviceId: string): Promise<ServiceLifecycleState | null>;
export declare function initServiceLifecycle(projectDir: string, serviceId: string, initialStatus?: ServiceLifecycleStatus): Promise<ServiceLifecycleState>;
export declare function transitionService(projectDir: string, serviceId: string, targetStatus: ServiceLifecycleStatus, errorMessage?: string): Promise<ServiceTransitionResult>;
/** Probe service health — checks that service/state files exist and are parseable. */
export declare function probeServiceHealth(projectDir: string, serviceId: string): Promise<{
    healthy: boolean;
    issues: string[];
}>;
//# sourceMappingURL=serviceLifecycle.d.ts.map