export type DetectPresenceMarkerInput = { project: string; latestAssistantMessage: string; }; export type DetectPresenceMarkerResult = { active: boolean; skill?: string; /** The gate the active presence is parked on — the machine fact behind * the status header's middle cell. Absent when the lease carries none. */ gate?: string; markerFound: boolean; warning?: string; }; export type PresenceMarkerWarning = (typeof PRESENCE_MARKER_WARNING)[number]; export declare const PRESENCE_MARKER_WARNING: readonly ["Peaks skill context may have been lost from this conversation; please re-invoke /peaks-."]; /** * Pure read-only presence-marker detection. No I/O side effects. * * Slice 4.0.11 statusline-sid-scoped-lease C: the deprecated * `.peaks/_runtime/active-skill.json` (and legacy * `.peaks/.active-skill.json`) read paths are removed. The * canonical sid-scoped lease projection at * `.peaks/_runtime//leases/presence-*.json` is the only source. * The `warning` field is preserved for downstream consumers * (statusline, doctor, hooks). */ export declare function detectPresenceMarker(input: DetectPresenceMarkerInput): DetectPresenceMarkerResult;