import type { FactoryGithubEventName, FactoryGithubRuleContext, FactoryRuleHandler } from '../../rules/types.js'; export type GithubRuleOverrides = Partial | null | undefined>>; export type GithubEventRules = Readonly | null>>; declare function retriageGithubIssue(context: FactoryGithubRuleContext): { readonly type: "invokeSkill"; readonly idempotencyKey: `${string}:factory-triage`; readonly role: "triage"; readonly skillName: "factory-triage"; readonly arguments: `Re-triage GitHub issue (${string}) after issue title and body edited.` | `Re-triage GitHub issue (${string}) after issue title edited.` | `Re-triage GitHub issue (${string}) after issue body edited.` | `Re-triage GitHub issue (${string}) after comment deleted.` | `Re-triage GitHub issue (${string}) after comment edited.` | `Re-triage GitHub issue (${string}) after comment created.`; } | undefined; declare function issueOpened(context: FactoryGithubRuleContext): { readonly type: "upsertLinkedWorkItem"; readonly idempotencyKey: `${string}:issue-intake`; readonly board: string; readonly source: "github-issue"; readonly sourceKey: `github-issue:${number}`; readonly title: string; readonly url: string; readonly stage: string; readonly metadata: { readonly authorTrusted: boolean; readonly autoStartCandidate: boolean; readonly assignees: string[]; readonly labels: string[]; readonly author?: string | undefined; readonly sourceCreatedAt?: string | undefined; readonly githubRepositoryId: number; readonly githubIssueNumber: number; }; } | undefined; declare function issueClosed(context: FactoryGithubRuleContext): { readonly type: "transition"; readonly idempotencyKey: `${string}:issue-closed`; readonly board: "work"; readonly stage: "done" | "canceled"; readonly message: { readonly text: string; }; } | undefined; declare function pullRequestOpened(context: FactoryGithubRuleContext): { readonly type: "upsertLinkedWorkItem"; readonly idempotencyKey: string; readonly board: "review"; readonly source: "github-pr"; readonly sourceKey: `github-pr:${number}`; readonly title: string; readonly url: string; readonly stage: "intake"; readonly metadata: { readonly author?: string | undefined; readonly factoryAuthored: boolean; readonly authorTrusted: boolean; readonly autoStartCandidate: boolean; readonly state: "closed" | "open"; readonly draft: boolean; readonly merged: boolean; readonly assignees: string[]; readonly requestedReviewers: string[]; readonly labels: string[]; readonly headBranch: string; readonly baseBranch: string; readonly sourceCreatedAt?: string | undefined; readonly githubRepositoryId: number; readonly githubPullRequestNumber: number; }; } | undefined; declare function pullRequestMerged(context: FactoryGithubRuleContext): { readonly type: "transition"; readonly idempotencyKey: `${string}:pull-request-merged`; readonly board: "review"; readonly stage: "done"; readonly message: { readonly text: string; }; readonly role?: undefined; } | { readonly type: "sendMessage"; readonly idempotencyKey: `${string}:assess-work-completion`; readonly role: "work"; readonly message: string; readonly board?: undefined; readonly stage?: undefined; } | undefined; declare function addressReviewFeedback(context: FactoryGithubRuleContext): { readonly type: "sendMessage"; readonly idempotencyKey: `${string}:address-review-feedback`; readonly role: "work"; readonly priority: "high"; readonly message: string; } | undefined; declare function addressPullRequestComment(context: FactoryGithubRuleContext): { readonly type: "upsertLinkedWorkItem"; readonly idempotencyKey: string; readonly board: "review"; readonly source: "github-pr"; readonly sourceKey: `github-pr:${number}`; readonly title: string; readonly url: string; readonly stage: "intake"; readonly metadata: { readonly author?: string | undefined; readonly factoryAuthored: boolean; readonly authorTrusted: boolean; readonly autoStartCandidate: boolean; readonly state: "closed" | "open"; readonly draft: boolean; readonly merged: boolean; readonly assignees: string[]; readonly requestedReviewers: string[]; readonly labels: string[]; readonly headBranch: string; readonly baseBranch: string; readonly sourceCreatedAt?: string | undefined; readonly githubRepositoryId: number; readonly githubPullRequestNumber: number; }; } | { readonly type: "transition"; readonly idempotencyKey: `${string}:re-review-requested`; readonly board: "review"; readonly stage: "review"; } | { readonly type: "sendMessage"; readonly idempotencyKey: `${string}:address-pull-request-comment`; readonly role: "work"; readonly priority: "high"; readonly message: string; } | undefined; declare function pullRequestClosed(context: FactoryGithubRuleContext): { readonly type: "transition"; readonly idempotencyKey: `${string}:pull-request-closed`; readonly board: "review"; readonly stage: "canceled"; readonly message: { readonly text: string; }; } | undefined; declare function reReviewRequestedPullRequest(context: FactoryGithubRuleContext): { readonly type: "upsertLinkedWorkItem"; readonly idempotencyKey: string; readonly board: "review"; readonly source: "github-pr"; readonly sourceKey: `github-pr:${number}`; readonly title: string; readonly url: string; readonly stage: "intake"; readonly metadata: { readonly author?: string | undefined; readonly factoryAuthored: boolean; readonly authorTrusted: boolean; readonly autoStartCandidate: boolean; readonly state: "closed" | "open"; readonly draft: boolean; readonly merged: boolean; readonly assignees: string[]; readonly requestedReviewers: string[]; readonly labels: string[]; readonly headBranch: string; readonly baseBranch: string; readonly sourceCreatedAt?: string | undefined; readonly githubRepositoryId: number; readonly githubPullRequestNumber: number; }; } | { readonly type: "transition"; readonly idempotencyKey: `${string}:re-review-requested`; readonly board: "review"; readonly stage: "review"; } | undefined; declare function reReviewUpdatedPullRequest(context: FactoryGithubRuleContext): { readonly reenter?: boolean | undefined; readonly type: "transition"; readonly idempotencyKey: `${string}:re-review-updated`; readonly board: "review"; readonly stage: "review"; } | undefined; export declare const defaultGithubRules: Readonly<{ issueOpened: typeof issueOpened; issueEdited: typeof retriageGithubIssue; issueClosed: typeof issueClosed; issueCommentCreated: typeof retriageGithubIssue; issueCommentEdited: typeof retriageGithubIssue; issueCommentDeleted: typeof retriageGithubIssue; pullRequestOpened: typeof pullRequestOpened; pullRequestUpdated: typeof reReviewUpdatedPullRequest; pullRequestCommentCreated: typeof addressPullRequestComment; pullRequestReviewRequested: typeof reReviewRequestedPullRequest; pullRequestReviewSubmitted: typeof addressReviewFeedback; pullRequestMerged: typeof pullRequestMerged; pullRequestClosed: typeof pullRequestClosed; }>; export declare function resolveGithubRules(overrides?: GithubRuleOverrides): GithubEventRules; export {}; //# sourceMappingURL=default-rules.d.ts.map