export declare const TASK_MANIFEST_SCHEMA: "airic.task/v1"; export type TaskVisibility = "private" | "team"; export type ExecutionLocation = "local" | "server"; export type RunStatus = "queued" | "preparing" | "running" | "blocked" | "completed" | "failed" | "cancelled" | "timed_out"; export type TerminalRunStatus = Extract; export interface Task { id: string; projectId: string; title: string; objective: string; acceptanceCriteria: string[]; roleId: string; modeId?: string; inputRefs: string[]; parentTaskId?: string; createdBy: string; createdAt: string; visibility: TaskVisibility; } export interface TaskInput { id: string; projectId: string; title: string; objective: string; acceptanceCriteria: string[]; roleId: string; modeId?: string; inputRefs?: string[]; parentTaskId?: string; createdBy: string; createdAt: string; visibility?: TaskVisibility; } export interface GitRevision { repository?: string; commit: string; path?: string; } export interface TaskAssetRevisions { operatingModel: GitRevision; businessModel?: GitRevision; software?: GitRevision; } export interface TaskManifest { schema: typeof TASK_MANIFEST_SCHEMA; task: Task; assets: TaskAssetRevisions; } export interface TaskAssignment { taskId: string; roleId: string; } export interface Run { id: string; taskId: string; attempt: number; location: ExecutionLocation; status: RunStatus; sessionId?: string; startedAt?: string; endedAt?: string; reason?: string; } export interface RunInput { id: string; taskId: string; attempt?: number; location: ExecutionLocation; } export interface RunTransition { status: Exclude; occurredAt: string; sessionId?: string; reason?: string; } export declare function createTask(input: TaskInput): Task; export declare function createTaskManifest(task: Task, assets: TaskAssetRevisions): TaskManifest; export declare function taskAssignment(task: Task): TaskAssignment; export declare function createRun(input: RunInput): Run; export declare function transitionRun(run: Run, transition: RunTransition): Run; export declare function isTerminalRunStatus(status: RunStatus): status is TerminalRunStatus;