import type { CoachingModel, ModelRoute } from './coaching-model.js'; export type CoachingContext = { id: string; manifest: any; dataNotes?: Record; }; type Kind = 'expression' | 'logic' | 'evidence'; type Finding = { id: string; slideId: string; kind: Kind; question: string; answer: string; issue: string; suggestion: string; reference: string; quote: string; grounded: boolean; patch?: Record; }; type Question = { id: string; slideId: string; question: string; answer?: string; feedback?: string; needsEvidence?: boolean; reference: string; quote: string; }; export declare class PptCoaching { readonly directory: string; private model?; private active; constructor(directory: string, model?: CoachingModel); get available(): boolean; setModel(model?: CoachingModel): void; dispose(): void; options(signal?: AbortSignal): Promise<{ available: boolean; routes: (ModelRoute & { label: string; })[]; }>; private path; private read; private locked; private write; private bound; list(context: CoachingContext): { id: string; mode: "review" | "practice"; status: "ready" | "busy" | "paused" | "complete"; createdAt: string; revision: number; }[]; get(context: CoachingContext, id: unknown): { stale: boolean; maxCalls: number; version: 1; id: string; projectId: string; deckId: string; revision: number; title: string; language: "zh" | "en"; mode: "review" | "practice"; difficulty: "gentle" | "normal" | "strict"; audience: string; limit: number; usedCalls: number; completedRounds: number; route: ModelRoute; status: "ready" | "busy" | "paused" | "complete"; findings: Finding[]; questions: Question[]; createdAt: string; updatedAt: string; error?: string; }; create(context: CoachingContext, body: Record, signal?: AbortSignal): Promise<{ stale: boolean; maxCalls: number; version: 1; id: string; projectId: string; deckId: string; revision: number; title: string; language: "zh" | "en"; mode: "review" | "practice"; difficulty: "gentle" | "normal" | "strict"; audience: string; limit: number; usedCalls: number; completedRounds: number; route: ModelRoute; status: "ready" | "busy" | "paused" | "complete"; findings: Finding[]; questions: Question[]; createdAt: string; updatedAt: string; error?: string; }>; private evidence; private question; private findings; step(context: CoachingContext, id: unknown, body: Record, signal?: AbortSignal): Promise<{ stale: boolean; maxCalls: number; version: 1; id: string; projectId: string; deckId: string; revision: number; title: string; language: "zh" | "en"; mode: "review" | "practice"; difficulty: "gentle" | "normal" | "strict"; audience: string; limit: number; usedCalls: number; completedRounds: number; route: ModelRoute; status: "ready" | "busy" | "paused" | "complete"; findings: Finding[]; questions: Question[]; createdAt: string; updatedAt: string; error?: string; }>; stop(context: CoachingContext, id: unknown): { stale: boolean; maxCalls: number; version: 1; id: string; projectId: string; deckId: string; revision: number; title: string; language: "zh" | "en"; mode: "review" | "practice"; difficulty: "gentle" | "normal" | "strict"; audience: string; limit: number; usedCalls: number; completedRounds: number; route: ModelRoute; status: "ready" | "busy" | "paused" | "complete"; findings: Finding[]; questions: Question[]; createdAt: string; updatedAt: string; error?: string; }; finish(context: CoachingContext, id: unknown): { stale: boolean; maxCalls: number; version: 1; id: string; projectId: string; deckId: string; revision: number; title: string; language: "zh" | "en"; mode: "review" | "practice"; difficulty: "gentle" | "normal" | "strict"; audience: string; limit: number; usedCalls: number; completedRounds: number; route: ModelRoute; status: "ready" | "busy" | "paused" | "complete"; findings: Finding[]; questions: Question[]; createdAt: string; updatedAt: string; error?: string; }; remove(context: CoachingContext, id: unknown): { removed: boolean; }; application(context: CoachingContext, id: unknown, selected: unknown, backup: unknown): { edits: { slide: string; patch: Record; }[]; append: { layout: string; title: string; bullets: string[]; notes: string; }[]; }; markdown(context: CoachingContext, id: unknown): string; } export {};