import type { GitHubClient } from "./client.js"; import type { GitHubSyncState, GitHubSyncStateStore } from "./sync-state.js"; import type { HackMdClient, NoteSelector } from "../hackmd/client.js"; export interface SyncNoteToGitHubInput extends NoteSelector { repository?: string; branch?: string; filePath?: string; baseBranch?: string; includeTitleTags?: boolean; allowDefaultBranch?: boolean; pullRequestTitle?: string; pullRequestBody?: string; version?: string; } export type GitHubSyncStatusInput = NoteSelector; export interface PullGitHubFileToHackMdInput { repository: string; filePath: string; branch?: string; syncBranch?: string; noteId?: string; teamPath?: string; overwriteHackMdContent?: boolean; includeTitleTags?: boolean; readPermission?: "owner" | "signed_in" | "guest"; writePermission?: "owner" | "signed_in" | "guest"; } export interface GitHubSyncResult { status: "synced" | "unchanged"; repository: string; branch: string; baseBranch: string; filePath: string; pullRequestNumber?: number; pullRequestUrl?: string; } export interface PullGitHubFileToHackMdResult { status: "created" | "updated"; noteId: string; repository: string; filePath: string; branch: string; baseBranch: string; } export interface SyncDependencies { hackmd: Pick; github: Pick; syncStateStore: GitHubSyncStateStore; now?: () => Date; } export interface PullDependencies { hackmd: Pick; github: Pick; syncStateStore: GitHubSyncStateStore; now?: () => Date; } export declare function syncNoteToGitHub(input: SyncNoteToGitHubInput, dependencies: SyncDependencies): Promise; export declare function pullGitHubFileToHackMd(input: PullGitHubFileToHackMdInput, dependencies: PullDependencies): Promise; export declare function getGitHubSyncStatus(input: GitHubSyncStatusInput, store: GitHubSyncStateStore): Promise; //# sourceMappingURL=sync.d.ts.map