/**
 * Resource self-heal tick as a `PeriodicService` (RUSH-3193 P3).
 *
 * Fills missing resources, repairs invalid manifests, and fast-forwards
 * pristine stale plugins. Conservative 'safe' mode: never overwrites
 * hand-edited content. Does not run when the daemon's state directory no
 * longer exists — that is the state-dir self-check's signal to shut down;
 * background maintenance must not recreate the tree while it is mid-exit.
 *
 * The pre-migration inline timer also delayed its first fire by
 * `SELF_HEAL_KICKOFF_MS` (30s) so shims/PATH could settle shortly after daemon
 * start, without making launch itself busy. `startupDelayMs` below reproduces
 * that stagger through the supervisor's generic per-service contract
 * (`service.ts`) — every other tick still fires on the normal `intervalMs`
 * cadence; only self-heal's boot-time tick is deliberately staggered.
 */
import { BasePeriodicService, type DaemonContext } from './service.js';
import type { DaemonServiceId } from '../daemon-services.js';
export declare class SelfHealService extends BasePeriodicService {
    readonly id: DaemonServiceId;
    readonly intervalMs: number;
    readonly deadlineMs: number;
    readonly startupDelayMs = 30000;
    protected onStart(_ctx: DaemonContext): Promise<void>;
    protected onStop(): Promise<void>;
    protected onTick(ctx: DaemonContext): Promise<void>;
}
