/**
 * @license
 * Copyright 2025 Steven Roussey <sroussey@gmail.com>
 * SPDX-License-Identifier: Apache-2.0
 */
import { CreateWorkflow, IExecuteContext, IExecutePreviewContext, Task, TaskConfig } from "@workglow/task-graph";
import { FromSchema } from "@workglow/util/schema";
declare const inputSchema: {
    readonly type: "object";
    readonly properties: {
        readonly template: {
            readonly type: "string";
            readonly title: "Template";
            readonly description: "Template string with {{key}} placeholders; supports {{key|default}} for defaults";
        };
        readonly values: {
            readonly type: "object";
            readonly title: "Values";
            readonly description: "Key-value pairs to substitute into the template";
            readonly additionalProperties: true;
        };
    };
    readonly required: readonly ["template", "values"];
    readonly additionalProperties: false;
};
declare const outputSchema: {
    readonly type: "object";
    readonly properties: {
        readonly result: {
            readonly type: "string";
            readonly title: "Result";
            readonly description: "Rendered template string";
        };
    };
    readonly required: readonly ["result"];
    readonly additionalProperties: false;
};
export type TemplateTaskInput = FromSchema<typeof inputSchema>;
export type TemplateTaskOutput = FromSchema<typeof outputSchema>;
/**
 * TemplateTask renders a template string by replacing `{{key}}` placeholders
 * with corresponding values. Supports `{{key|default}}` syntax for fallback
 * values when a key is missing. Nested dot-notation paths (e.g. `{{a.b}}`)
 * are resolved against the values object.
 */
export declare class TemplateTask<Input extends TemplateTaskInput = TemplateTaskInput, Output extends TemplateTaskOutput = TemplateTaskOutput, Config extends TaskConfig = TaskConfig> extends Task<Input, Output, Config> {
    static readonly type = "TemplateTask";
    static readonly category = "Utility";
    static title: string;
    static description: string;
    static inputSchema(): {
        readonly type: "object";
        readonly properties: {
            readonly template: {
                readonly type: "string";
                readonly title: "Template";
                readonly description: "Template string with {{key}} placeholders; supports {{key|default}} for defaults";
            };
            readonly values: {
                readonly type: "object";
                readonly title: "Values";
                readonly description: "Key-value pairs to substitute into the template";
                readonly additionalProperties: true;
            };
        };
        readonly required: readonly ["template", "values"];
        readonly additionalProperties: false;
    };
    static outputSchema(): {
        readonly type: "object";
        readonly properties: {
            readonly result: {
                readonly type: "string";
                readonly title: "Result";
                readonly description: "Rendered template string";
            };
        };
        readonly required: readonly ["result"];
        readonly additionalProperties: false;
    };
    execute(input: Input, _context: IExecuteContext): Promise<Output | undefined>;
    executePreview(input: Input, _context: IExecutePreviewContext): Promise<Output | undefined>;
}
declare module "@workglow/task-graph" {
    interface Workflow {
        template: CreateWorkflow<TemplateTaskInput, TemplateTaskOutput, TaskConfig>;
    }
}
export {};
//# sourceMappingURL=TemplateTask.d.ts.map