import { z } from 'zod';
import { NodeSchema } from '../call/machine.js';
import type { MachineNode } from '../query/index.js';
export interface NodeParseError {
    message: string;
    path: string;
    line?: number;
    column?: number;
    start?: number;
    end?: number;
}
export interface NodeParseResult {
    success: boolean;
    data?: z.infer<typeof NodeSchema>;
    errors: NodeParseError[];
}
export interface MachineNodesParseResult {
    success: boolean;
    data?: MachineNode[];
    errors: NodeParseError[];
}
export declare function parseNodeFromText(text: string): NodeParseResult;
export declare function parseMachineNodesFromText(text: string): MachineNodesParseResult;
export declare function formatNodeErrors(errors: NodeParseError[]): string;
export declare function validateMachineNode(node: unknown): {
    success: boolean;
    errors: NodeParseError[];
};
export declare function validateMachineNodePair(pair: unknown): {
    success: boolean;
    errors: NodeParseError[];
};
export declare function validateMachineForward(forward: unknown): {
    success: boolean;
    errors: NodeParseError[];
};
export interface MachineNodeFileOptions {
    machineName?: string;
    machineAddress?: string;
    machineId?: string;
    includeComments?: boolean;
}
export declare function machineNodesToJson(nodes: MachineNode[], options?: MachineNodeFileOptions): string;
export declare function machineNodesToMarkdown(nodes: MachineNode[], options?: MachineNodeFileOptions): string;
export declare function saveMachineNodesToFile(nodes: MachineNode[], filePath: string, format?: 'json' | 'markdown', options?: MachineNodeFileOptions): void;
