export type MergeStrategy = "merge" | "squash" | "rebase"; export type PullRequestRequest = { title: string; body: string; headBranch: string; baseBranch: string; draft?: boolean; missionId?: string; expeditionId?: string; }; export type PullRequest = { id: string; url: string; number: number; state: "open" | "closed" | "merged"; headBranch: string; baseBranch: string; }; export type MergeResult = { success: boolean; commit?: string; error?: string; }; export type ReleaseRequest = { tag: string; name: string; body: string; targetCommit: string; prerelease?: boolean; }; export type Release = { id: string; url: string; tag: string; }; export type Check = { name: string; status: "pending" | "success" | "failure" | "skipped"; conclusion?: string; url?: string; }; export type Comment = { id: string; body: string; }; export type Review = { id: string; author: string; state: "approved" | "changes_requested" | "commented"; }; export interface ForgeAdapter { readonly providerName: string; openPullRequest(request: PullRequestRequest): Promise; updatePullRequest(id: string, request: Partial): Promise; closePullRequest(id: string): Promise; mergePullRequest(id: string, strategy: MergeStrategy): Promise; createRelease(request: ReleaseRequest): Promise; listChecks(id: string): Promise; addComment(id: string, body: string): Promise; listReviews(id: string): Promise; } export type ForgeAdapterFactory = (config: Record) => ForgeAdapter; export declare function registerForgeAdapter(provider: string, factory: ForgeAdapterFactory): void; export declare function createForgeAdapter(provider: string, config: Record): ForgeAdapter; export declare function listForgeProviders(): string[];