import type { CypherEnvironment } from "../../Environment"; import type { CypherCompilable, Expr } from "../../types"; /** @inline */ type LabelSource = string | LabelExpr | Expr; /** @group Patterns */ export type LabelOperator = "&" | "|" | "!" | "%"; /** * Label Expression to be used as part of a Pattern * @see {@link https://neo4j.com/docs/cypher-manual/current/syntax/expressions/#label-expressions | Cypher Documentation} * @group Patterns */ export declare abstract class LabelExpr implements CypherCompilable { protected operator: LabelOperator; constructor(operator: LabelOperator); protected compileLabel(expr: LabelSource, env: CypherEnvironment): string; } /** Generates an `&` operator between labels or types * @see {@link https://neo4j.com/docs/cypher-manual/current/syntax/expressions/#label-expressions | Cypher Documentation} * @group Expressions * @category Operators */ declare function labelAnd(...labels: Array): LabelExpr; /** Generates an `|` operator between labels or types * @see {@link https://neo4j.com/docs/cypher-manual/current/syntax/expressions/#label-expressions | Cypher Documentation} * @group Expressions * @category Operators */ declare function labelOr(...labels: Array): LabelExpr; /** Generates an `!` operator for a label or type * @see {@link https://neo4j.com/docs/cypher-manual/current/syntax/expressions/#label-expressions | Cypher Documentation} * @group Expressions * @category Operators */ declare function labelNot(label: LabelSource): LabelExpr; export declare const labelExpr: { and: typeof labelAnd; or: typeof labelOr; not: typeof labelNot; wildcard: LabelExpr; }; export {};