import { P as PathnameService, F as FileSystemAdapter, I as IntentService, e as PluginService, d as FrontmatterMetadata, V as ValidationResult } from '../LLMail-CELnm7VA.cjs'; import '../errors/errors.cjs'; import { FileService } from './file-service.cjs'; import { FileFormatValidator } from '../validation/file-format-validator.cjs'; import { MetadataFormatValidator } from '../validation/metadata-format-validator.cjs'; import { FileSystemValidator } from '../validation/file-system-validator.cjs'; import '../utils/logger.cjs'; import 'winston'; interface UpdateMetadata { author?: string; reason?: string; [key: string]: string | undefined; } interface UpdateOptions { id: string; content: string; metadata?: UpdateMetadata; time?: boolean; } interface XMLOptions { id: string; tagName: string; content: string; metadata?: Record; time?: boolean; } declare class IssueService { private readonly FRONTMATTER_REGEX; private readonly YAML_DUMP_OPTIONS; private config; private pathnameService; private fs; private intentService; private fileService; private fileFormatValidator; private metadataValidator; private fileSystemValidator; private pluginService?; constructor(pathnameService: PathnameService, fs: FileSystemAdapter, intentService: IntentService, fileService: FileService, fileFormatValidator: FileFormatValidator, metadataValidator: MetadataFormatValidator, fileSystemValidator: FileSystemValidator, pluginService?: PluginService); fileMethods: { writeNewFile: (metadata: FrontmatterMetadata, content?: string) => Promise; saveAndMoveFile: (filePath: string, metadata: FrontmatterMetadata) => Promise; moveFileWithMetadata: (sourcePath: string, targetPath: string, metadata: FrontmatterMetadata) => Promise; findFilesByState: (state: string) => Promise; getMetadataFromPath: (filePath: string) => Promise; findFileById: (id: string) => Promise; findFilesByType: (type: string) => Promise; }; frontmatterMethods: { parseFrontmatter: (content: string) => Promise | null>; updateFrontmatter: (content: string, frontmatter: FrontmatterMetadata) => string; createFrontmatter: (metadata: FrontmatterMetadata) => Promise; getFrontmatterMetadata: (filePath: string) => Promise; isValidFrontmatterMetadata: (meta: any) => meta is FrontmatterMetadata; validateMetadata: (metadata: FrontmatterMetadata) => ValidationResult; validateStateTransition: (current: FrontmatterMetadata, next: FrontmatterMetadata) => ValidationResult; markAsDone: (id: string, reason: string) => Promise; setFrontmatterMetadata: (filePath: string, updates: Partial) => Promise; transitionActiveState: (filePath: string, next: Partial) => Promise; }; xmlMethods: { formatXMLAttributes: (metadata?: Record, timestamp?: string | false) => string; createXMLBlock: (tagName: string, content: string, metadata?: Record, includeTime?: boolean) => string; prependXML: (options: XMLOptions) => Promise; appendXML: (options: XMLOptions) => Promise; prependUpdate: (options: UpdateOptions) => Promise; appendUpdate: (options: UpdateOptions) => Promise; applyPluginValidation: (metadata: FrontmatterMetadata) => ValidationResult; }; validateMetadata: (metadata: FrontmatterMetadata) => ValidationResult; validateStateTransition: (current: FrontmatterMetadata, next: FrontmatterMetadata) => ValidationResult; getIssueDirectories(): string[]; } export { IssueService };