declare module "ext:core/ops" { export function op_console_print(args: [stderr: boolean, text: string]): null; export type TaskActionJson = | "None" | { Shell: string } | { Argv: string[] } | { Callback: { id: number; key: string } }; export interface TaskReadyJson { name: string; action: TaskActionJson; args: string[]; env: Record; } export interface TaskReportJson { code: number; completed: string[]; failed: { name: string; code: number }[]; cached: string[]; } export type TaskStepJson = { Ready: TaskReadyJson[] } | { Done: TaskReportJson }; export interface TaskGraphJson { tasks: Record; } export function op_task_begin(args: { graph: TaskGraphJson; root: string; target: string; args: string[]; force: boolean; cache_dir: string; }): number; export function op_task_step(session: number): TaskStepJson; export function op_task_finish(args: { session: number; name: string; code: number }): void; export function op_task_drop(session: number): boolean; export function op_task_digest(graph: TaskGraphJson): string; export function op_task_relevant(args: { graph: TaskGraphJson; target: string; root: string; paths: { path: string; structural: boolean }[]; }): boolean; }