import { GetQueryResponseType, QueryResponseToResultType, SelectQueryFactory } from './SelectQuery.js';
import { AddId, NodeReferenceValue, UpdatePartial } from './QueryFactory.js';
import { Shape } from '../shapes/Shape.js';
import { CreateResponse } from './CreateQuery.js';
import { DeleteResponse } from './DeleteQuery.js';
import { NodeId } from './MutationQuery.js';
export declare class QueryParser {
    static selectQuery<ShapeType extends Shape, ResponseType, Source, ResultType = QueryResponseToResultType<GetQueryResponseType<SelectQueryFactory<ShapeType, ResponseType>>, ShapeType>[]>(query: SelectQueryFactory<ShapeType, ResponseType, Source>): Promise<ResultType>;
    static updateQuery<ShapeType extends Shape, U extends UpdatePartial<ShapeType>>(id: string | {
        id: string;
    } | {
        uri: string;
    }, updateObjectOrFn: U, shapeClass: typeof Shape): Promise<AddId<U>>;
    static createQuery<ShapeType extends Shape, U extends UpdatePartial<ShapeType>>(updateObjectOrFn: U, shapeClass: typeof Shape): Promise<CreateResponse<U>>;
    static deleteQuery(id: NodeId | NodeId[] | NodeReferenceValue[], shapeClass: typeof Shape): Promise<DeleteResponse>;
}
