export type IntegrationCampaignStatus = "pending" | "processing" | "waiting" | "completed" | "failed"; export interface IntegrationCampaign { id: string; integrationTaskId: string; threadId: string; turnId: string; status: IntegrationCampaignStatus; chunkCount: number; currentRunId: string | null; leaseToken: string | null; leaseExpiresAt: number | null; nextRunAt: number; progressRef: string | null; checkpoint: string | null; errorMessage: string | null; createdAt: number; updatedAt: number; completedAt: number | null; } export type ClaimIntegrationCampaignResult = { kind: "claimed"; campaign: IntegrationCampaign; } | { kind: "not-due"; } | { kind: "chunk-limit"; campaign: IntegrationCampaign; }; export declare function ensureIntegrationCampaignsTable(): Promise; export declare function getIntegrationCampaign(id: string): Promise; export declare function getIntegrationCampaignForTask(integrationTaskId: string): Promise; export declare function createIntegrationCampaign(input: { integrationTaskId: string; threadId: string; turnId: string; progressRef?: string | null; checkpoint?: string | null; nextRunAt?: number; }): Promise; export declare function claimIntegrationCampaign(id: string, input: { runId: string; leaseToken: string; leaseDurationMs: number; maxChunks: number; }): Promise; export declare function claimIntegrationCampaignDeliveryForTask(integrationTaskId: string, input: { runId: string; leaseToken: string; leaseDurationMs: number; }): Promise; export declare function heartbeatIntegrationCampaign(id: string, input: { runId: string; leaseToken: string; leaseDurationMs: number; }): Promise; export declare function scheduleNextIntegrationCampaign(id: string, input: { runId: string; leaseToken: string; nextRunAt: number; progressRef?: string | null; checkpoint?: string | null; }): Promise; export declare function waitForA2AIntegrationCampaign(id: string, input: { runId: string; leaseToken: string; nextRunAt: number; progressRef?: string | null; }): Promise; export declare function completeIntegrationCampaign(id: string, input: { runId: string; leaseToken: string; }): Promise; export declare function completeIntegrationCampaignTask(id: string, input: { integrationTaskId: string; runId: string; leaseToken: string; }): Promise; export declare function failIntegrationCampaign(id: string, input: { runId: string; leaseToken: string; errorMessage: string; }): Promise; export declare function failExhaustedIntegrationCampaign(id: string, input: { maxChunks: number; errorMessage: string; }): Promise; export declare function terminalizeIntegrationCampaignForTask(integrationTaskId: string, input: { status: "completed" | "failed"; errorMessage?: string; }): Promise; export declare function failIntegrationCampaignTaskDeliveryContainment(integrationTaskId: string, errorMessage: string): Promise; /** * Fail closed when a durable campaign's rollout scope is removed. Both rows * transition in one transaction so the per-thread processing lock cannot be * stranded while the campaign is no longer recoverable. */ export declare function failDisabledIntegrationCampaignTask(integrationTaskId: string, errorMessage?: string): Promise; export declare function transitionIntegrationCampaignTaskToDeliveryRetry(integrationTaskId: string, input: { payload: string; errorMessage: string; campaignStatus: "completed" | "failed"; campaignId: string; runId: string; leaseToken: string; }): Promise; export declare function transitionIntegrationCampaignTaskToA2AReceiptRetry(integrationTaskId: string, input: { payload: string; errorMessage: string; campaignId: string; runId: string; leaseToken: string; nextRunAt: number; }): Promise; export declare function refreshIntegrationCampaignTaskA2AReceiptRetry(integrationTaskId: string, input: { payload: string; errorMessage: string; }): Promise; export declare function completeIntegrationCampaignTaskAfterA2A(integrationTaskId: string): Promise; export declare function listDueIntegrationCampaignIds(limit?: number): Promise; export declare function hasActiveIntegrationCampaign(integrationTaskId: string): Promise; //# sourceMappingURL=integration-campaigns-store.d.ts.map