import type { ConfigStatus, WorkflowNode } from "./types";
/**
 * Lightweight field schema type the DS uses to compute config status.
 * Consumers map their own schemas (zod, yup, custom) to this shape.
 */
export interface FieldConditional {
    action: "show" | "hide" | "require" | "disable";
    field: string;
    operator: "==" | "!=" | ">" | "<" | ">=" | "<=" | "in" | "not_in" | "contains";
    value: unknown;
}
export interface FieldSchema {
    key: string;
    required?: boolean;
    defaultValue?: unknown;
    hidden?: boolean;
    conditional?: FieldConditional[];
}
export interface ConfigStatusResult {
    status: ConfigStatus;
    requiredTotal: number;
    requiredFilled: number;
    optionalTotal: number;
    optionalFilled: number;
    missingRequired: string[];
    filledOptional: string[];
}
/**
 * Compute the config status of a node, given its fields schema.
 * Returns "hidden" if no schema is provided — caller can wrap this and
 * apply their own registry lookup.
 */
export declare function getNodeConfigStatus(node: WorkflowNode, fields: FieldSchema[] | undefined, options?: {
    hiddenActionIds?: Set<string>;
}): ConfigStatusResult;
//# sourceMappingURL=configStatus.d.ts.map