import type { IntegrationContext } from '../base.js'; import type { GithubIssueFetcher, GithubOpenIssueLister, GithubRulesIntegration, GithubRulesOptions, ReconcileRepository } from './rules.js'; export interface GithubIssueReconcileSummary { /** Repositories included in the sweep. */ repositories: number; /** Issue cards whose live state was fetched. */ checked: number; /** Open issues with metadata patches. */ updated: number; /** Closed issues replayed through the rules ingress. */ closed: number; /** Open issues whose changed labels were replayed through the rules ingress. */ relabeled: number; /** Open issues with no Work card replayed as `opened` through the rules ingress. */ created: number; /** Errors encountered during the sweep. */ failed: number; /** Error samples with context. */ errors: Array<{ repository: string; issueNumber?: number; error: string; }>; } export type GithubIssueReconciler = (repositories: ReconcileRepository[]) => Promise; export declare function createGithubIssueReconciler(options: GithubRulesOptions, fetchIssue: GithubIssueFetcher, listOpenIssues?: GithubOpenIssueLister): GithubIssueReconciler; export declare function attachGithubIssueReconciler(github: GithubRulesIntegration, context: IntegrationContext, fetchIssue: GithubIssueFetcher, listOpenIssues?: GithubOpenIssueLister): GithubIssueReconciler | undefined; //# sourceMappingURL=issue-reconciler.d.ts.map