import type { AgentTool, AgentToolContext, AgentToolResult, AgentToolUpdateCallback } from "@gajae-code/agent-core"; import * as z from "zod/v4"; import type { ToolSession } from "./index"; /** Maximum scheduled tasks per owner. Mirrors upstream Claude Code's 50-task cap. */ export declare const MAX_CRON_TASKS_PER_OWNER = 50; /** Recurring tasks auto-expire 7 days after creation (mirrors upstream). */ export declare const CRON_RECURRING_MAX_AGE_MS: number; declare const cronSchema: z.ZodObject<{ op: z.ZodEnum<{ create: "create"; delete: "delete"; list: "list"; }>; cron_expression: z.ZodOptional; prompt: z.ZodOptional; recurring: z.ZodOptional; id: z.ZodOptional; }, z.core.$strict>; export type CronParams = z.infer; export interface CronJobSnapshot { id: string; cron_expression: string; prompt: string; recurring: boolean; createdAt: number; expiresAt?: number; nextFireAt?: number; /** True while this owner-scoped schedule's delivery is in progress. */ firing?: boolean; humanSchedule: string; ownerId?: string; } export interface CronListJobDetails { id: string; cron: string; recurring: boolean; prompt: string; humanSchedule: string; } export interface CronToolDetails { op: "create" | "list" | "delete"; id?: string; cron_expression?: string; recurring?: boolean; nextFireAt?: number; jobs?: CronListJobDetails[]; deleted?: boolean; } /** Clear every schedule for an owner. Exported for tests + lifecycle teardown. */ export declare function clearOwnerSchedules(ownerId: string | undefined): void; /** Reset every owner's schedule store. Test-only. */ export declare function resetCronRegistryForTests(): void; /** Subscribe to cron schedule-set changes. Returns an unsubscribe function. */ export declare function onCronChange(cb: () => void): () => void; /** Snapshot the scheduled cron jobs for an owner (or all owners when omitted). */ export declare function listCronSnapshots(ownerId?: string): CronJobSnapshot[]; /** Delete a scheduled cron job by owner-scoped id. Returns true when removed. */ export declare function deleteCronJobById(ownerId: string | undefined, id: string): boolean; export declare function validateCronExpression(expression: string): void; export declare function findNextCronMatchMs(expression: string, afterMs: number, deadlineMs?: number): number | undefined; export declare function calculateCronFireTimeMs(params: { id: string; cronExpression: string; baseMatchMs: number; recurring: boolean; nowMs: number; expiresAt?: number; }): number; export declare class CronTool implements AgentTool { #private; private readonly session; readonly name = "cron"; readonly label = "Cron"; readonly summary = "Schedule, list, and cancel cron-style prompts (op: create | list | delete)"; readonly description: string; readonly parameters: z.ZodObject<{ op: z.ZodEnum<{ create: "create"; delete: "delete"; list: "list"; }>; cron_expression: z.ZodOptional; prompt: z.ZodOptional; recurring: z.ZodOptional; id: z.ZodOptional; }, z.core.$strict>; readonly strict = true; readonly loadMode = "discoverable"; constructor(session: ToolSession); static createIf(session: ToolSession): CronTool | null; execute(_toolCallId: string, params: CronParams, _signal?: AbortSignal, _onUpdate?: AgentToolUpdateCallback, _context?: AgentToolContext): Promise>; } export {};