declare const MINIMIZE_COMMENTS_POLICIES: readonly ["all", "bots", "users", "none"]; export type MinimizeCommentsPolicy = (typeof MINIMIZE_COMMENTS_POLICIES)[number]; declare const RESOLVE_OTHER_HUMAN_THREADS: readonly ["none", "outdated", "always"]; export type ResolveOtherHumanThreads = (typeof RESOLVE_OTHER_HUMAN_THREADS)[number]; export interface GraphqlQuotaWarningBand { remainingPercent: number; pollIntervalMinutes: number; } interface PollConfig { intervalSeconds: number; timeoutSeconds: number; debounceSeconds: number; quietStatus: boolean; } export interface PrShepherdConfig { /** Optional user classification configuration; preserved for rule consumers. */ classify?: unknown; /** GitHub logins that should be treated as bots even when GitHub reports User/Unknown. */ botUsernames: string[]; /** Case-insensitive glob patterns for check/status context names Shepherd should ignore. */ ignoreChecks: string[]; iterate: { fixAttemptsPerThread: number; stallTimeoutMinutes: number; /** * When `true`, APPROVED-state reviews are also eligible for minimization — defaults to `false` * so approvals stay visible. `minimizeComments` still filters by GitHub author type. */ minimizeApprovals: boolean; /** * Which GitHub author classes should be auto-minimized for minimizable PR comments and review * summaries. Items excluded by this policy are still surfaced once (and after edits) via seen * markers so they do not repeat forever. */ minimizeComments: MinimizeCommentsPolicy; /** * One-liner hint appended to the `fix_code` push instruction when the branch is behind its * base — e.g. "rebase --force-with-lease" or "see .agents/skills/git-and-prs.md". Empty * (default) omits the hint entirely; the CLI never prescribes rebase/merge mechanics itself. */ behindBaseHint: string; /** * When to resolve other-human inline threads after Shepherd replies. Own and bot threads * always reply-and-resolve. `none` (default) keeps other humans reply-only; `outdated` * also resolves when GitHub reports `isOutdated`; `always` pairs reply-and-resolve. */ resolveOtherHumanThreads: ResolveOtherHumanThreads; }; poll: PollConfig; watch: { readyDelayMinutes: number; graphqlQuotaWarnings: GraphqlQuotaWarningBand[]; }; resolve: { shaPoll: { intervalMs: number; maxAttempts: number; }; }; checks: { ciTriggerEvents: string[]; /** Regex patterns matched against each raw log line; matching lines are dropped from log excerpts. Empty by default — no lines are stripped unless configured. */ ignoreLogLines: string[]; }; mergeStatus: { blockingReviewerLogins: string[]; }; merge?: { /** Options added to ordinary `gh pr merge` commands. Queue commands never use these. */ commandArgs: string[]; }; actions: { autoMinimizeSuppressed: boolean; autoMarkReady: boolean; /** Legacy-named patterns that keep matching Actions checks visible despite ignoreChecks. */ neverCancelRuns: string[]; /** * When `false` (default), `iterate --merge` defers non-CI actionable work * (review threads, comments, changes-requested reviews, review summaries) * while the PR sits in the merge queue, since a Shepherd-initiated push * would eject it. When `true`, restores pre-existing behavior: actionable * work is handled immediately regardless of queue membership. */ workWhileQueued: boolean; /** @deprecated Accepted for compatibility, ignored by the loader. */ autoResolveOutdated?: boolean; /** @deprecated Accepted for compatibility, ignored by the loader. */ commitSuggestions?: boolean; }; } export declare function loadConfig(): PrShepherdConfig; /** Reset the config cache — for use in tests that change directories. */ export declare function _resetConfigCache(): void; export {};