import type { WorkspaceRef } from '../workspace/types'; import type { TaskAuthBindingSnapshot } from './TaskAuthBinding'; import type { TaskStatusType, TaskTriggerKindType } from './schema'; export interface TaskRecordData { /** Base-relative Solid resource id, e.g. `index.ttl#task_x`. */ id: string; title?: string; prompt: string; thread: string; workspace: WorkspaceRef; runner: string; status: TaskStatusType; triggerKind: TaskTriggerKindType; cron?: string; intervalSeconds?: number; eventName?: string; nextRunAt?: number; lastRunAt?: number; authBinding?: TaskAuthBindingSnapshot; metadata?: Record; createdAt: number; updatedAt: number; } export interface TaskListOptions { status?: TaskStatusType; triggerKind?: TaskTriggerKindType; eventName?: string; dueAt?: number; limit?: number; } export interface TaskStore { saveTask(task: TaskRecordData, context: TContext): Promise; loadTask(taskId: string, context: TContext): Promise; listTasks(options: TaskListOptions, context: TContext): Promise; } export declare function isTaskResourceId(value: string | null | undefined): value is string; export declare function buildTaskResourceId(id: string): string; export declare function generateTaskResourceId(input: string | { key: string; createdAt?: number; }): string; export declare function generateDefaultTaskResourceId(key: string): string; export declare function resolveTaskResource(podBaseUrl: string, taskId: string): string; export declare function resolveTaskUrn(taskId: string): string;