import type { FactoryGitLabEventName, FactoryGitLabRuleContext, FactoryRuleHandler } from '../../rules/types.js'; export type GitLabRuleOverrides = Partial | null | undefined>>; export type GitLabEventRules = Readonly | null>>; declare function issueOpened(context: FactoryGitLabRuleContext): { readonly type: "upsertLinkedWorkItem"; readonly idempotencyKey: `${string}:issue-intake`; readonly board: string; readonly source: "gitlab-issue"; readonly sourceKey: string; readonly title: string; readonly url: string; readonly stage: string; readonly metadata: { readonly authorTrusted: boolean; readonly autoStartCandidate: boolean; readonly assignees: string[]; readonly labels: string[]; readonly labelColors: Record; readonly author?: string | undefined; readonly sourceCreatedAt?: string | undefined; readonly gitlabHost: string; readonly gitlabProjectId: number; readonly gitlabIssueIid: number; readonly identifier: `${string}#${number}`; }; } | undefined; declare function retriageIssue(context: FactoryGitLabRuleContext): { readonly type: "invokeSkill"; readonly idempotencyKey: `${string}:factory-triage`; readonly role: "triage"; readonly skillName: "factory-triage"; readonly arguments: `Re-triage GitLab issue (${string}) after a comment was added.` | `Re-triage GitLab issue (${string}) after the issue changed.`; } | undefined; declare function issueClosed(context: FactoryGitLabRuleContext): { readonly type: "transition"; readonly idempotencyKey: `${string}:issue-closed`; readonly board: import("../../rules/types.js").FactoryRuleBoard; readonly stage: string; readonly message: { readonly text: `GitLab issue #${number} was closed; this ${string} card was moved to ${string}.` | `GitLab issue # was closed; this ${string} card was moved to ${string}.`; }; } | undefined; declare function materializeMergeRequest(context: FactoryGitLabRuleContext): { readonly type: "upsertLinkedWorkItem"; readonly idempotencyKey: `${string}:merge-request-intake`; readonly board: "review"; readonly source: "gitlab-pr"; readonly sourceKey: string; 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 labelColors: Record; readonly headBranch: string; readonly baseBranch: string; readonly sourceCreatedAt?: string | undefined; readonly gitlabHost: string; readonly gitlabProjectId: number; readonly gitlabMergeRequestIid: number; }; } | undefined; declare function mergeRequestUpdated(context: FactoryGitLabRuleContext): { readonly reenter?: boolean | undefined; readonly type: "transition"; readonly idempotencyKey: `${string}:re-review-updated`; readonly board: "review"; readonly stage: "review"; } | undefined; declare function mergeRequestCommented(context: FactoryGitLabRuleContext): { readonly type: "sendMessage"; readonly idempotencyKey: `${string}:address-merge-request-comment`; readonly role: "work"; readonly priority: "high"; readonly message: string; } | undefined; declare function mergeRequestMerged(context: FactoryGitLabRuleContext): { readonly type: "transition"; readonly idempotencyKey: `${string}:merge-request-merged`; readonly board: "review"; readonly stage: "done"; readonly message: { readonly text: `GitLab merge request !${number} merged; this Review card was moved to Done.`; }; 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 mergeRequestClosed(context: FactoryGitLabRuleContext): { readonly type: "transition"; readonly idempotencyKey: `${string}:merge-request-closed`; readonly board: "review"; readonly stage: "canceled"; readonly message: { readonly text: string; }; } | undefined; export declare const defaultGitLabRules: Readonly<{ issueOpened: typeof issueOpened; issueUpdated: typeof retriageIssue; issueClosed: typeof issueClosed; issueCommented: typeof retriageIssue; mergeRequestOpened: typeof materializeMergeRequest; mergeRequestUpdated: typeof mergeRequestUpdated; mergeRequestCommented: typeof mergeRequestCommented; mergeRequestMerged: typeof mergeRequestMerged; mergeRequestClosed: typeof mergeRequestClosed; }>; export declare function resolveGitLabRules(overrides?: GitLabRuleOverrides): GitLabEventRules; export {}; //# sourceMappingURL=default-rules.d.ts.map