import { FileManager } from './file-manager'; import { GitHubConfig, ObsidianConfig, ReentryStatus, SyncResult, SyncTarget, UpdateContext } from './models'; export interface GitHubSyncer { renderIssueBody(status: ReentryStatus, reentryMarkdown: string): string; sync(status: ReentryStatus, reentryMarkdown: string): Promise; } export interface ObsidianSyncer { renderNoteContent(status: ReentryStatus, reentryMarkdown: string): string; sync(status: ReentryStatus, reentryMarkdown: string): Promise; } export interface ReentryStatusManagerOptions { fileManager?: FileManager; createGitHubSyncer?: (config: GitHubConfig) => GitHubSyncer; createObsidianSyncer?: (config: ObsidianConfig) => ObsidianSyncer; isObsidianAvailable?: () => Promise; } export declare class ReentryStatusManager { private readonly fileManager; private readonly createGitHubSyncer?; private readonly createObsidianSyncer?; private readonly isObsidianAvailable?; constructor(options?: ReentryStatusManagerOptions); createInitialStatus(): ReentryStatus; loadOrInit(rootConfig: any): Promise; updateStatus(rootConfig: any, updater: (current: ReentryStatus) => ReentryStatus): Promise; applyContext(rootConfig: any, context: UpdateContext): Promise; ensureRoadmapExists(rootConfig: any, status: ReentryStatus): Promise; syncAll(rootConfig: any, targets?: SyncTarget[]): Promise; } //# sourceMappingURL=reentry-status-manager.d.ts.map