import type { INodeTypes } from 'n8n-workflow'; import type { WorkflowBuilder, WorkflowJSON } from '../types/base'; export { setSchemaBaseDirs, validateNodeConfig, type SchemaValidationResult, } from './schema-validator'; export type ValidationErrorCode = 'NO_NODES' | 'MISSING_TRIGGER' | 'DISCONNECTED_NODE' | 'MISSING_PARAMETER' | 'INVALID_CONNECTION' | 'CIRCULAR_REFERENCE' | 'INVALID_EXPRESSION' | 'AGENT_STATIC_PROMPT' | 'AGENT_NO_SYSTEM_MESSAGE' | 'HARDCODED_CREDENTIALS' | 'SET_CREDENTIAL_FIELD' | 'MERGE_SINGLE_INPUT' | 'TOOL_NO_PARAMETERS' | 'FROM_AI_IN_NON_TOOL' | 'MISSING_EXPRESSION_PREFIX' | 'INVALID_PARAMETER' | 'INVALID_INPUT_INDEX' | 'INVALID_OUTPUT_INDEX' | 'SUBNODE_NOT_CONNECTED' | 'SUBNODE_PARAMETER_MISMATCH' | 'UNSUPPORTED_SUBNODE_INPUT' | 'MISSING_REQUIRED_INPUT' | 'INVALID_OUTPUT_FOR_MODE' | 'SWITCH_NO_OUTPUT_CONNECTIONS' | 'SWITCH_FALLBACK_OUTPUT_DISABLED' | 'MAX_NODES_EXCEEDED' | 'INVALID_EXPRESSION_PATH' | 'PARTIAL_EXPRESSION_PATH' | 'INVALID_DATE_METHOD' | 'UNKNOWN_CONFIG_KEY'; export declare class ValidationError { readonly code: ValidationErrorCode; readonly message: string; readonly nodeName?: string; readonly parameterName?: string; readonly violationLevel?: 'critical' | 'major' | 'minor'; constructor(code: ValidationErrorCode, message: string, nodeName?: string, parameterName?: string, violationLevel?: 'critical' | 'major' | 'minor'); } export declare class ValidationWarning { readonly code: ValidationErrorCode; readonly message: string; readonly nodeName?: string; readonly parameterPath?: string; readonly originalName?: string; readonly violationLevel?: 'critical' | 'major' | 'minor'; constructor(code: ValidationErrorCode, message: string, nodeName?: string, parameterPath?: string, originalName?: string, violationLevel?: 'critical' | 'major' | 'minor'); } export interface ValidationResult { valid: boolean; errors: ValidationError[]; warnings: ValidationWarning[]; } export interface ValidationOptions { strictMode?: boolean; allowDisconnectedNodes?: boolean; allowNoTrigger?: boolean; validateSchema?: boolean; nodeTypesProvider?: INodeTypes; } export declare function validateWorkflow(workflowOrJson: WorkflowBuilder | WorkflowJSON, options?: ValidationOptions): ValidationResult;