import { MastraWorker } from '@mastra/core/worker'; import type { WorkerDeps } from '@mastra/core/worker'; import type { ConfiguredExternalRepositoryKey, ExternalRepositoryProjectTarget, SourceControlRepository } from '../../storage/domains/source-control/base.js'; import type { GithubIssueReconciler } from './issue-reconciler.js'; import type { GithubPullRequestReconciler } from './rules.js'; export declare const DEFAULT_GITHUB_RECONCILE_INTERVAL_MS: number; /** Storage slice the sweep needs to turn configured repositories into targets. */ export interface GithubReconcileRepositorySource { projectRepositories: { listConfiguredExternalKeys(): Promise; listByExternalRepository(args: { installationExternalId: string; repositoryExternalId: string; }): Promise; }; repositories: { findByExternalId(args: { orgId: string; externalId: string; }): Promise; }; } export interface GithubReconcileWorkerConfig { reconcile?: GithubPullRequestReconciler; reconcileIssues?: GithubIssueReconciler; sourceControl: GithubReconcileRepositorySource; intervalMs?: number; issueIntervalMs?: number; now?: () => number; } /** * Periodic GitHub state sweeps for the self-hosted integration. Pull requests * drive review cards and issues drive work cards, but both share discovery and * a lease so replicas never sweep the same configured repositories together. */ export declare class GithubReconcileWorker extends MastraWorker { #private; readonly name = "github-pull-request-reconcile"; constructor(config: GithubReconcileWorkerConfig); init(deps: WorkerDeps): Promise; start(): Promise; stop(): Promise; get isRunning(): boolean; } //# sourceMappingURL=reconcile-worker.d.ts.map