import type { OpenSpecStatus, OpenSpecChange, OpenSpecManifest, OpenSpecTask, TasksDocument, Amendment, SessionLog, OpenSpecConfig, CreateProposalOptions, TransitionOptions, CreateAmendmentOptions, UpdateTaskOptions, TransitionResult, OpenSpecQueryFilter, OpenSpecQueryResult, OpenSpecEventListener, TaskDependency } from "./types"; export declare class OpenSpecClient { private config; private rootDir; private changesDir; private archiveDir; private activePath; private manifestPath; private listeners; constructor(projectRoot: string, config?: Partial); initialize(): Promise; createProposal(options: CreateProposalOptions): Promise; transition(toStatus: OpenSpecStatus, options: TransitionOptions): Promise; getChange(changeId: string): Promise; getActive(): Promise; setActive(changeId: string, taskId?: string): Promise; clearActive(): Promise; addTasks(changeId: string, tasks: Omit[]): Promise; updateTask(options: UpdateTaskOptions): Promise; getTasks(changeId: string): Promise; addTaskDependency(changeId: string, dependency: TaskDependency): Promise; createAmendment(options: CreateAmendmentOptions): Promise; addSessionLog(changeId: string, log: SessionLog): Promise; query(filter: OpenSpecQueryFilter): Promise; getManifest(): Promise; rebuildManifest(): Promise; on(listener: OpenSpecEventListener): () => void; private emit; private generateChangeId; private getContentFileName; private metadataToChange; private saveMetadata; private archiveChange; private updateManifest; private changeToManifestEntry; private createEmptyManifest; private estimateAmendmentEffort; private formatAmendmentMarkdown; }