/**
 * @license
 * Copyright 2025 Steven Roussey <sroussey@gmail.com>
 * SPDX-License-Identifier: Apache-2.0
 */
import { CreateWorkflow, IExecuteContext, Task, TaskConfig } from "@workglow/task-graph";
import { DataPortSchema, FromSchema } from "@workglow/util/schema";
export type DelayTaskConfig = TaskConfig & {
    /** Delay duration in milliseconds */
    delay?: number;
};
declare const inputSchema: {
    readonly type: "object";
    readonly properties: {};
    readonly additionalProperties: true;
};
declare const outputSchema: {
    readonly type: "object";
    readonly properties: {};
    readonly additionalProperties: true;
};
export type DelayTaskInput = FromSchema<typeof inputSchema>;
export type DelayTaskOutput = FromSchema<typeof outputSchema>;
export declare class DelayTask<Input extends DelayTaskInput = DelayTaskInput, Output extends DelayTaskOutput = DelayTaskOutput> extends Task<Input, Output, DelayTaskConfig> {
    static readonly type = "DelayTask";
    static readonly category = "Utility";
    static title: string;
    static description: string;
    static readonly cacheable = false;
    static passthroughInputsToOutputs: boolean;
    static customizable: boolean;
    static configSchema(): DataPortSchema;
    static inputSchema(): {
        readonly type: "object";
        readonly properties: {};
        readonly additionalProperties: true;
    };
    static outputSchema(): {
        readonly type: "object";
        readonly properties: {};
        readonly additionalProperties: true;
    };
    execute(input: Input, executeContext: IExecuteContext): Promise<Output>;
}
/**
 * DelayTask
 *
 * Delays the execution of a task for a specified amount of time
 *
 * @param config - Task configuration; use `config.delay` for the delay in milliseconds
 */
export declare const delay: (input: DelayTaskInput, config?: DelayTaskConfig) => Promise<{
    [x: string]: unknown;
}>;
declare module "@workglow/task-graph" {
    interface Workflow {
        delay: CreateWorkflow<DelayTaskInput, DelayTaskOutput, DelayTaskConfig>;
    }
}
export {};
//# sourceMappingURL=DelayTask.d.ts.map