/**
 * event-plan-parser — canonical parser for `<installDir>/.amplitude-events.json`.
 *
 * Single source of truth for reading the event-plan file the agent writes via
 * `confirm_event_plan`. Both the TUI's Event Plan viewer (which imports
 * `parseEventPlanContent` from `agent-interface.ts`) and the CLI plan reader
 * (`agent-ops.ts#runPlan`) ultimately route through this module so the schema
 * and fallback chains stay in lock-step.
 *
 * Lightweight on purpose — only depends on `zod`. Pure-ops modules can import
 * it without dragging in the Claude Agent SDK loader, the wizard UI singleton,
 * analytics, or any other agent-runtime surface.
 *
 * History: extracted from `agent-interface.ts` after Bugbot flagged that the
 * inlined parser in `agent-ops.ts` had drifted from the TUI's copy. See PR
 * #295.
 */
/**
 * Parse the agent-written `.amplitude-events.json` into a normalized
 * `[{ name, description }]` array. Returns `null` if the input isn't valid
 * JSON or doesn't match the schema, so callers can distinguish "not ready
 * yet" from a structural problem.
 *
 * Tolerates all observed agent-written field variants:
 *   name        → name | event | eventName | event_name
 *   description → description | event_description | eventDescription
 *                 | eventDescriptionAndReasoning
 *
 * Description fallback prefers concise standard aliases over the verbose
 * `eventDescriptionAndReasoning` legacy field — if an agent emits both,
 * the concise one wins so the plan stays scannable.
 *
 * Also unwraps a `{ events: [...] }` wrapper some skills produce.
 */
export declare function parseEventPlanContent(content: string): Array<{
    name: string;
    description: string;
}> | null;
/**
 * Read the agent-written event plan from a project's install dir.
 *
 * Tries the canonical path first (`<installDir>/.amplitude/events.json`),
 * then the legacy dotfile (`<installDir>/.amplitude-events.json`) that
 * older context-hub integration skills still emit. Returns whichever has
 * the more recent mtime so a stale canonical from a previous run can't
 * shadow a fresh legacy write — mirroring the `pickFreshestExisting`
 * logic in `agent-interface.ts`.
 *
 * Returns `[]` for any non-fatal failure (file missing, malformed JSON,
 * schema mismatch). Empty entries (no name) are dropped. Logs to the
 * debug file so issues are recoverable post-mortem.
 *
 * Used by the Event Verification screen to render the planned tracking
 * list inline so users can see what they need to trigger.
 */
export declare function readLocalEventPlan(installDir: string): Array<{
    name: string;
    description: string;
}>;
