import type { SlackDestination, SystemActor } from "@sentry/junior-plugin-api"; import { z } from "zod"; export type ScheduledTaskStatus = "active" | "paused" | "blocked" | "deleted"; export declare const scheduledTaskCredentialModeSchema: z.ZodEnum<{ system: "system"; creator: "creator"; }>; export type ScheduledTaskCredentialMode = z.infer; export type ScheduledRunStatus = "pending" | "running" | "completed" | "failed" | "blocked" | "skipped"; export interface ScheduledTaskPrincipal { slackUserId: string; fullName?: string; userName?: string; } export type ScheduledTaskExecutionActor = SystemActor; export declare const SCHEDULED_TASK_SYSTEM_ACTOR: Readonly<{ platform: "system"; name: string; }>; export interface ScheduledTaskConversationAccess { audience: "direct" | "group" | "channel"; visibility: "private" | "public"; } export type ScheduledCalendarFrequency = "daily" | "weekly" | "monthly" | "yearly"; export interface ScheduledLocalTime { hour: number; minute: number; } export interface ScheduledTaskRecurrence { dayOfMonth?: number; frequency: ScheduledCalendarFrequency; interval: number; month?: number; startDate: string; time: ScheduledLocalTime; weekdays?: number[]; } export interface ScheduledTaskSchedule { description: string; timezone: string; kind: "one_off" | "recurring"; recurrence?: ScheduledTaskRecurrence; } export interface ScheduledTaskSpec { text: string; } export interface ScheduledTask { id: string; createdAtMs: number; createdBy: ScheduledTaskPrincipal; /** Authoritative provider identity that created the task. */ creatorIdentityId: string; conversationAccess: ScheduledTaskConversationAccess; /** Selects system credentials or task-bound creator credential delegation. */ credentialMode: ScheduledTaskCredentialMode; destination: SlackDestination; executionActor?: ScheduledTaskExecutionActor; lastRunAtMs?: number; nextRunAtMs?: number; originalRequest?: string; runNowAtMs?: number; schedule: ScheduledTaskSchedule; status: ScheduledTaskStatus; statusReason?: string; task: ScheduledTaskSpec; updatedAtMs: number; } export interface ScheduledRun { id: string; attempt: number; claimedAtMs: number; completedAtMs?: number; dispatchId?: string; errorMessage?: string; resultMessageTs?: string; scheduledForMs: number; startedAtMs?: number; status: ScheduledRunStatus; taskId: string; }