import type { IntegrationStorageHandle, IntegrationSubscription } from '../../storage/domains/integrations/base.js'; export type GithubSignalSubscriptionSource = 'auto-gh-pr-create' | 'factory-pr-create' | 'explicit-tool'; export type GithubSignalSubscriptionStatus = 'open' | 'closed' | 'merged'; export interface GithubSignalSubscriptionData { installationExternalId: string; projectRepositoryId: string; repositoryExternalId: string; repositorySlug: string; changeRequestId: string; ownerId: string; source: GithubSignalSubscriptionSource; subscribedByUserId: string | null; } export type GithubSignalSubscriptionRow = IntegrationSubscription; export type GithubSubscriptionStorage = IntegrationStorageHandle, Record, GithubSignalSubscriptionData>; export interface SubscribeToPullRequestInput { orgId: string; installationExternalId: string; projectRepositoryId: string; repositoryExternalId: string; repositorySlug: string; changeRequestId: string; sessionId: string; ownerId: string; resourceId: string; threadId: string; sessionScope?: string; source: GithubSignalSubscriptionSource; subscribedByUserId?: string; } export interface ThreadSubscriptionTarget { orgId: string; resourceId: string; threadId: string; sessionScope?: string; } export interface PullRequestSubscriptionTarget { orgId: string; installationExternalId: string; repositoryExternalId: string; changeRequestId: string; } export type GithubWebhookPullRequestTarget = Omit; export declare function changeRequestTargetKey(input: GithubWebhookPullRequestTarget): string; export declare function subscribeToPullRequest(input: SubscribeToPullRequestInput, storage: GithubSubscriptionStorage): Promise; export declare function unsubscribeFromPullRequest(input: SubscribeToPullRequestInput, storage: GithubSubscriptionStorage): Promise; export declare function listPullRequestSubscriptionsForThread(input: ThreadSubscriptionTarget, storage: GithubSubscriptionStorage): Promise; export declare function listPullRequestSubscriptions(input: PullRequestSubscriptionTarget, storage: GithubSubscriptionStorage): Promise; export declare function listPullRequestSubscriptionsForWebhook(input: GithubWebhookPullRequestTarget, options: { includeTerminal?: boolean; } | undefined, storage: GithubSubscriptionStorage): Promise; export declare function retirePullRequestSubscription(id: string, status: GithubSignalSubscriptionStatus, storage: GithubSubscriptionStorage): Promise; export declare function retirePullRequestSubscriptions(input: PullRequestSubscriptionTarget, storage: GithubSubscriptionStorage): Promise; //# sourceMappingURL=subscriptions.d.ts.map