import { UltipaTransactionRecorder } from "./UltipaTransaction.Recorder";
import { ConnectionFinal } from "../connection/connection.final";
import { UltipaTransactionSession } from "./UltipaTransactionSession";
import { RequestType, ULTIPA } from "../types";
import RequestConfig = RequestType.RequestConfig;
export declare enum TransactionStatus {
    Open = 0,
    Closed = 1,
    Committed = 2
}
export declare class UltipaTransaction {
    recorder: UltipaTransactionRecorder;
    session: UltipaTransactionSession;
    status: TransactionStatus;
    id: string;
    conn: ConnectionFinal;
    onError?: (Msg: string) => void;
    constructor(conn: ConnectionFinal, session: UltipaTransactionSession);
    uql(uql: string, requestConfig?: RequestConfig): Promise<ULTIPA.UQLResponse>;
    insertNodes(nodes: ULTIPA.Node[]): Promise<ULTIPA.Response<import("../types").ResponseType.InsertNodes>>;
    insertEdges(edges: ULTIPA.Edge[]): Promise<ULTIPA.Response<import("../types").ResponseType.InsertEdges>>;
    deleteNodes(filter: string): Promise<ULTIPA.UQLResponse>;
    deleteEdges(filter: string): Promise<ULTIPA.UQLResponse>;
    /**
     * @param filter "age > 10"
     * @param value "{time: "1999-01-01 12:12:00", age: 10}"
     */
    updateNodes(filter: string, value: string): Promise<ULTIPA.UQLResponse>;
    updateEdges(filter: string, value: string): Promise<ULTIPA.UQLResponse>;
    rollback(msg?: string): Promise<void>;
    commit(): Promise<void>;
    close(): Promise<void>;
    throwError(msg: string, rollback?: boolean): Promise<void>;
    checkCommitOrClosed(silent?: boolean): Promise<boolean>;
}
