import type { GhToolDetails } from "@oh-my-pi/pi-tui/tools/github"; import type { AgentTool, AgentToolContext, AgentToolResult, AgentToolUpdateCallback, ToolApprovalDecision } from "@oh-my-pi/pi-agent-core"; import type { ToolSession } from "./index.js"; export { formatRepoRef, parsePositiveDecimalInt, resolveDefaultRepoMemoized } from "./gh-common.js"; export { getOrFetchPrDiff, getPinnedPrDiff, type PrDiffFile, type PrDiffLookupOptions, type PrDiffPayload, parsePrUnifiedDiff, retainPrDiffGeneration, } from "./gh-pr-diff.js"; export { buildSearchDateQualifier, parseSearchDateBound } from "./gh-search.js"; export { getOrFetchIssue, getOrFetchPr, githubIssueJsonWithStateReasonFallback, type IssueViewLookupOptions, type PrViewLookupOptions, type ViewLookupResult, } from "./gh-view.js"; declare const githubSchema: import("@oh-my-pi/omptype").FluentType<{ assignee?: string[] | undefined; base?: string | undefined; body?: string | undefined; branch?: string | undefined; dateField?: "created" | "updated" | undefined; draft?: boolean | undefined; fill?: boolean | undefined; force?: boolean | undefined; forceWithLease?: boolean | undefined; head?: string | undefined; label?: string[] | undefined; limit?: number | undefined; op: "file_read" | "pr_checkout" | "pr_create" | "pr_push" | "repo_view" | "run_watch" | "search_code" | "search_commits" | "search_issues" | "search_prs" | "search_repos"; path?: string | undefined; pr?: string | string[] | undefined; query?: string | undefined; repo?: string | undefined; reviewer?: string[] | undefined; run?: string | undefined; since?: string | undefined; tail?: number | undefined; title?: string | undefined; until?: string | undefined; }, { assignee?: string[] | undefined; base?: string | undefined; body?: string | undefined; branch?: string | undefined; dateField?: "created" | "updated" | undefined; draft?: boolean | undefined; fill?: boolean | undefined; force?: boolean | undefined; forceWithLease?: boolean | undefined; head?: string | undefined; label?: string[] | undefined; limit?: number | undefined; op: "file_read" | "pr_checkout" | "pr_create" | "pr_push" | "repo_view" | "run_watch" | "search_code" | "search_commits" | "search_issues" | "search_prs" | "search_repos"; path?: string | undefined; pr?: string | string[] | undefined; query?: string | undefined; repo?: string | undefined; reviewer?: string[] | undefined; run?: string | undefined; since?: string | undefined; tail?: number | undefined; title?: string | undefined; until?: string | undefined; }>; type GithubInput = typeof githubSchema.infer; export declare class GithubTool implements AgentTool { private readonly session; readonly name = "github"; readonly approval: (args: unknown) => ToolApprovalDecision; readonly summary = "Interact with GitHub repositories, files, pull requests, and Actions"; readonly loadMode = "discoverable"; readonly label = "GitHub"; readonly description: string; readonly parameters: import("@oh-my-pi/omptype").FluentType<{ assignee?: string[] | undefined; base?: string | undefined; body?: string | undefined; branch?: string | undefined; dateField?: "created" | "updated" | undefined; draft?: boolean | undefined; fill?: boolean | undefined; force?: boolean | undefined; forceWithLease?: boolean | undefined; head?: string | undefined; label?: string[] | undefined; limit?: number | undefined; op: "file_read" | "pr_checkout" | "pr_create" | "pr_push" | "repo_view" | "run_watch" | "search_code" | "search_commits" | "search_issues" | "search_prs" | "search_repos"; path?: string | undefined; pr?: string | string[] | undefined; query?: string | undefined; repo?: string | undefined; reviewer?: string[] | undefined; run?: string | undefined; since?: string | undefined; tail?: number | undefined; title?: string | undefined; until?: string | undefined; }, { assignee?: string[] | undefined; base?: string | undefined; body?: string | undefined; branch?: string | undefined; dateField?: "created" | "updated" | undefined; draft?: boolean | undefined; fill?: boolean | undefined; force?: boolean | undefined; forceWithLease?: boolean | undefined; head?: string | undefined; label?: string[] | undefined; limit?: number | undefined; op: "file_read" | "pr_checkout" | "pr_create" | "pr_push" | "repo_view" | "run_watch" | "search_code" | "search_commits" | "search_issues" | "search_prs" | "search_repos"; path?: string | undefined; pr?: string | string[] | undefined; query?: string | undefined; repo?: string | undefined; reviewer?: string[] | undefined; run?: string | undefined; since?: string | undefined; tail?: number | undefined; title?: string | undefined; until?: string | undefined; }>; readonly strict = true; constructor(session: ToolSession); static createIf(session: ToolSession): GithubTool | null; execute(_toolCallId: string, params: GithubInput, signal?: AbortSignal, onUpdate?: AgentToolUpdateCallback, _context?: AgentToolContext): Promise>; }