import Cypher from "@neo4j/cypher-builder";
import type { ConcreteEntityAdapter } from "../../../../schema-model/entity/model-adapters/ConcreteEntityAdapter";
import type { RelationshipAdapter } from "../../../../schema-model/relationship/model-adapters/RelationshipAdapter";
import type { QueryASTContext } from "../QueryASTContext";
import type { QueryASTNode } from "../QueryASTNode";
import type { OperationField } from "../fields/OperationField";
import type { AuthorizationFilters } from "../filters/authorization-filters/AuthorizationFilters";
import type { InputField } from "../input-fields/InputField";
import type { SelectionPattern } from "../selection/SelectionPattern/SelectionPattern";
import { MutationOperation, type OperationTranspileResult } from "./operations";
export declare class CreateOperation extends MutationOperation {
    readonly target: ConcreteEntityAdapter;
    readonly relationship: RelationshipAdapter | undefined;
    protected readonly authFilters: AuthorizationFilters[];
    private readonly selectionPattern;
    private readonly projectionOperations;
    private readonly inputFields;
    private nestedContext;
    constructor({ target, relationship, selectionPattern, }: {
        target: ConcreteEntityAdapter;
        relationship?: RelationshipAdapter;
        selectionPattern: SelectionPattern;
    });
    /** Prints the name of the Node */
    print(): string;
    getChildren(): QueryASTNode[];
    addAuthFilters(...filter: AuthorizationFilters[]): void;
    addField(field: InputField): void;
    addProjectionOperations(operations: OperationField[]): void;
    /** Post subqueries */
    getAuthorizationSubqueries(_context: QueryASTContext): Cypher.Clause[];
    transpile(context: QueryASTContext): OperationTranspileResult;
    private getAuthorizationClauses;
    private transpileAuthClauses;
}
//# sourceMappingURL=CreateOperation.d.ts.map