import type {Observable} from "rxjs"; import {TaskLogger, type TaskLoggerOptions} from "../domain/TaskLogger.js"; export type MaybePromise = Promise | T; type TaskPredicate = MaybePromise; export interface Task { title: string; task: (ctx: Ctx, operation: TaskLogger) => MaybePromise | Observable; skip?: boolean | string | ((ctx: Ctx) => TaskPredicate); enabled?: boolean | ((ctx: Ctx) => MaybePromise); type?: TaskLoggerOptions["type"]; }