import type { IssueRecord } from '../../core/engine.js'; import type { SyncResource } from '@volter-ai-dev/twin'; /** ztrack lifecycle status -> GitHub issue state (only done-ness is representable). */ export declare function statusToGithubState(status: string): 'open' | 'closed'; /** GitHub issue state -> ztrack status: `closed` is done; `open` PRESERVES the local fine * state (or `draft` for a brand-new / reopened issue, when there is no local state to keep). */ export declare function githubStateToStatus(state: string, existingStatus?: string): string; /** A GitHub issue's identity (the synced issue IS this issue). */ export type GithubIssueRef = { id: string; number: number; repository: string; }; /** A ztrack record -> the GitHub issue SyncResource the twin reconciles/pushes. */ export declare function recordToIssueResource(record: IssueRecord, ref: GithubIssueRef): SyncResource; /** The fields a pulled GitHub issue overlays onto the local record. */ export type IssueSyncFields = { title: string; body: string; status: string; }; /** A pulled GitHub issue SyncResource -> the fields to overlay onto the local ztrack record. * `existingStatus` preserves the local fine lifecycle state for an open issue. */ export declare function issueResourceToRecordFields(resource: SyncResource, existingStatus?: string): IssueSyncFields;