/** * @copyright * Copyright 2026 Steven Roussey * All Rights Reserved */ import type { IExecuteContext, IExecutePreviewContext, TaskConfig } from "@workglow/task-graph"; import { Task } from "@workglow/task-graph"; import type { ImageValue } from "@workglow/util/media"; export interface ImageFilterInput { image: ImageValue; } export interface ImageFilterOutput { image: ImageValue; } export declare abstract class ImageFilterTask = ImageFilterInput & Record, Output extends ImageFilterOutput & Record = ImageFilterOutput & Record, Config extends TaskConfig = TaskConfig> extends Task { protected abstract readonly filterName: string; protected abstract opParams(input: Input): P; /** * Override in subclasses to scale pixel-space params. Default is identity. * Always called before applyFilter; multiply-by-1 in run mode is a no-op. */ protected scalePreviewParams(params: P, _scale: number): P; private runFilter; execute(input: Input, _ctx: IExecuteContext): Promise; executePreview(input: Input, _ctx: IExecutePreviewContext): Promise; }