import { ErrorObject } from "ajv";
import { YamlParserResult } from "@stoplight/yaml";
export declare const SUPPORTED_TRIGGER_KINDS: readonly ["http", "websocket", "kafka", "nats", "postgres", "mqtt", "sqs", "gcp", "email"];
export type TriggerKind = (typeof SUPPORTED_TRIGGER_KINDS)[number];
export type ValidationTarget = {
    type: "flow";
} | {
    type: "schedule";
} | {
    type: "trigger";
    triggerKind: TriggerKind;
};
/**
 * Infers validation target from file name conventions used by Windmill sync.
 */
export declare function getValidationTargetFromFilename(filePath: string): ValidationTarget | null;
/**
 * Unified YAML validator for Windmill flow, schedule, and trigger files.
 */
export declare class WindmillYamlValidator {
    private readonly validateFlow;
    private readonly validateSchedule;
    private readonly validateTrigger;
    constructor();
    /**
     * Validates a Windmill YAML document based on the selected target.
     * @param doc - The YAML document as string
     * @param target - Which Windmill schema to validate against
     */
    validate(doc: string, target: ValidationTarget): {
        parsed: YamlParserResult<unknown>;
        errors: ErrorObject[];
    };
}
