import type { CreateLocalIssueInput, GetLocalIssueOptions, ImportLocalIssueInput, LocalIssueCommentIdMapping, ListLocalIssuesOptions, ListLocalIssuesResult, LocalIssueConfig, LocalIssueEvent, LocalIssueEventWithBody, LocalIssueIndex, LocalIssueProvider, LocalIssueRecord, UpdateLocalIssueFieldsInput } from './types.js'; export declare class LocalIssueProviderError extends Error { } export declare class LocalIssueLockError extends LocalIssueProviderError { } export declare class LocalIssueLockManager { private readonly locksDir; private readonly waitMs; private readonly pollMs; constructor(root: string, options?: { waitMs?: number; pollMs?: number; }); withIssueLock(issueId: string, operation: string, fn: () => Promise): Promise; withIdLock(operation: string, fn: () => Promise): Promise; withIndexLock(operation: string, fn: () => Promise): Promise; private withLock; private acquire; } export declare class LocalIssueProviderCore implements LocalIssueProvider { private readonly root; private readonly lockManager; constructor(root: string); init(options?: { prefix?: string; padding?: number; }): Promise; createIssue(input: CreateLocalIssueInput): Promise; importIssue(input: ImportLocalIssueInput): Promise; applyCommentIdMappings(id: string, mappings: LocalIssueCommentIdMapping[]): Promise; getIssue(id: string, options?: GetLocalIssueOptions): Promise; listIssues(options?: ListLocalIssuesOptions): Promise; updateIssueFields(id: string, patch: UpdateLocalIssueFieldsInput): Promise; appendIssueEvent(id: string, event: Omit & { created_at?: string; body?: string; }): Promise; commentIssue(id: string, body: string, options?: { author?: string; type?: 'comment' | 'cycle_status'; }): Promise; closeIssue(id: string, options?: { author?: string; reason?: string; }): Promise; getIssueThreadSince(id: string, since: string): Promise; rebuildIssueIndex(): Promise; private ensureLayout; private allocateIssueId; private readConfigIfExists; private readConfig; private readIndexOrRebuild; private readIssue; private touchIssueUpdatedAt; private appendEventUnlocked; private readEvents; private itemPath; private eventPath; private projectRoot; private path; } export declare function parseIssueMarkdown(content: string): LocalIssueRecord; export declare function serializeIssueMarkdown(issue: LocalIssueRecord): string; export interface LocalIssuePrefixSuggestion { prefix: string; source: string; } export declare function suggestLocalIssuePrefix(projectRoot: string): Promise; export declare function localIssueRoot(projectRoot: string): string; export declare function localIssueRelativePath(projectRoot: string, absPath: string): string; //# sourceMappingURL=local.d.ts.map