/**
 * Data service handles node and edge insert/delete/export operations.
 */
import { ServiceContext } from './service-context';
import { InsertNodesResult, InsertEdgesResult, ExportNodesResult, ExportEdgesResult, ExportConfig, ExportChunk } from '../response';
import { NodeData, EdgeData } from '../types';
import { InsertNodesConfig, InsertEdgesConfig } from '../client';
/**
 * Parse leading major.minor.patch from a server version string.
 * Returns [0,0,0] on parse failure (treated as "unknown / pre-6.1.149").
 */
export declare function parseVersion(s: string | null | undefined): [number, number, number];
/**
 * Data service for inserting, deleting, and exporting graph data.
 */
export declare class DataService {
    private ctx;
    constructor(ctx: ServiceContext);
    /**
     * Throw GqldbError if `mode` is UPSERT and the connected server is
     * older than 6.1.149.
     *
     * Server >= 6.1.154 reports the real version in
     * `LoginResponse.server_version`. Older servers either return a
     * placeholder "1.0.0" or leave the field empty — both are now treated
     * as "definitely older than 6.1.149" and rejected. (Earlier versions
     * of this gate let those cases pass through; that workaround was
     * removed once 6.1.154+ started populating the field correctly.)
     */
    private requireUpsertSupport;
    /**
     * Insert multiple nodes into a graph.
     */
    insertNodes(graphName: string, nodes: NodeData[], config?: InsertNodesConfig): Promise<InsertNodesResult>;
    /**
     * Insert multiple edges into a graph.
     */
    insertEdges(graphName: string, edges: EdgeData[], config?: InsertEdgesConfig): Promise<InsertEdgesResult>;
    /**
     * Export graph data in JSON Lines format (streaming).
     */
    export(config: ExportConfig, callback?: (chunk: ExportChunk) => void): Promise<void>;
    /**
     * Stream nodes from a graph.
     * @deprecated Use export() with ExportConfig instead
     */
    exportNodes(graphName: string, labels?: string[], limit?: number, callback?: (result: ExportNodesResult) => void): Promise<void>;
    /**
     * Stream edges from a graph.
     * @deprecated Use export() with ExportConfig instead
     */
    exportEdges(graphName: string, labels?: string[], limit?: number, callback?: (result: ExportEdgesResult) => void): Promise<void>;
}
