/**
 * @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 value: {
            readonly type: "string";
            readonly title: "Value";
            readonly description: "Input string to match against";
        };
        readonly pattern: {
            readonly type: "string";
            readonly title: "Pattern";
            readonly description: "Regular expression pattern";
        };
        readonly flags: {
            readonly type: "string";
            readonly title: "Flags";
            readonly description: "Regex flags (e.g. 'g', 'i', 'gi')";
            readonly default: "";
        };
    };
    readonly required: readonly ["value", "pattern"];
    readonly additionalProperties: false;
};
declare const outputSchema: {
    readonly type: "object";
    readonly properties: {
        readonly match: {
            readonly type: "boolean";
            readonly title: "Match";
            readonly description: "Whether the pattern matched";
        };
        readonly matches: {
            readonly type: "array";
            readonly items: {
                readonly type: "string";
            };
            readonly title: "Matches";
            readonly description: "Array of matched strings (full matches when global, groups when not)";
        };
    };
    readonly required: readonly ["match", "matches"];
    readonly additionalProperties: false;
};
export type RegexTaskInput = FromSchema<typeof inputSchema>;
export type RegexTaskOutput = FromSchema<typeof outputSchema>;
export declare class RegexTask<Input extends RegexTaskInput = RegexTaskInput, Output extends RegexTaskOutput = RegexTaskOutput, Config extends TaskConfig = TaskConfig> extends Task<Input, Output, Config> {
    static readonly type = "RegexTask";
    static readonly category = "String";
    static title: string;
    static description: string;
    static inputSchema(): {
        readonly type: "object";
        readonly properties: {
            readonly value: {
                readonly type: "string";
                readonly title: "Value";
                readonly description: "Input string to match against";
            };
            readonly pattern: {
                readonly type: "string";
                readonly title: "Pattern";
                readonly description: "Regular expression pattern";
            };
            readonly flags: {
                readonly type: "string";
                readonly title: "Flags";
                readonly description: "Regex flags (e.g. 'g', 'i', 'gi')";
                readonly default: "";
            };
        };
        readonly required: readonly ["value", "pattern"];
        readonly additionalProperties: false;
    };
    static outputSchema(): {
        readonly type: "object";
        readonly properties: {
            readonly match: {
                readonly type: "boolean";
                readonly title: "Match";
                readonly description: "Whether the pattern matched";
            };
            readonly matches: {
                readonly type: "array";
                readonly items: {
                    readonly type: "string";
                };
                readonly title: "Matches";
                readonly description: "Array of matched strings (full matches when global, groups when not)";
            };
        };
        readonly required: readonly ["match", "matches"];
        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 {
        regex: CreateWorkflow<RegexTaskInput, RegexTaskOutput, TaskConfig>;
    }
}
export {};
//# sourceMappingURL=RegexTask.d.ts.map