import * as _fajarnugraha37_error from '@fajarnugraha37/error'; import { validateExpressionFn, ExpressionSchema, ExpressionMetadata, CombinationOperator, Operation, OperatorOption, OperationOperand, ValidatorFn, ValidateErrorGetter } from '../expression.cjs'; declare const defaultValidator: { validate: (data: unknown) => _fajarnugraha37_error.ValidationResult; validateAsync: (data: unknown) => Promise<_fajarnugraha37_error.ValidationResult>; validateStrict: (data: unknown) => any; validateStrictAsync: (data: unknown) => Promise; validateMany: (items: unknown[]) => _fajarnugraha37_error.ValidationResult; validateManyAsync: (items: unknown[]) => Promise<_fajarnugraha37_error.ValidationResult>; }; declare class ExpressionBuilder { private _id; private _name?; private _description?; private _multipleOperations; private _operations; private _metadata; private _version?; private _validator?; private _errors?; private _strictValidation; private _validateExpression; private constructor(); static create(id: string, validateExpression?: validateExpressionFn): ExpressionBuilder; static fromSchema(schema: ExpressionSchema, validateExpression?: validateExpressionFn): ExpressionBuilder; name(name: string): this; description(description: string): this; version(version: string): this; metadata(metadata: Partial): this; tags(...tags: string[]): this; category(category: string): this; priority(priority: number): this; author(author: string): this; all(): this; any(): this; combine(operator: CombinationOperator): this; add(operation: Operation): this; addMany(...operations: Operation[]): this; op(operator: K, ...args: OperationOperand[]): this; if(condition: OperationOperand, thenValue: OperationOperand, elseValue?: OperationOperand): this; switch(value: OperationOperand, cases: Record, defaultCase?: OperationOperand): this; plus(...operands: OperationOperand[]): this; subtract(a: OperationOperand, b: OperationOperand): this; multiply(...operands: OperationOperand[]): this; divide(a: OperationOperand, b: OperationOperand): this; gt(a: OperationOperand, b: OperationOperand): this; gte(a: OperationOperand, b: OperationOperand): this; lt(a: OperationOperand, b: OperationOperand): this; lte(a: OperationOperand, b: OperationOperand): this; equals(a: OperationOperand, b: OperationOperand): this; strictEquals(a: OperationOperand, b: OperationOperand): this; and(...operands: OperationOperand[]): this; or(...operands: OperationOperand[]): this; not(operand: OperationOperand): this; withValidator(validator: ValidatorFn, getErrors: ValidateErrorGetter): this; strictValidation(enabled?: boolean): this; clear(): this; clone(): ExpressionBuilder; get operationsCount(): number; get isEmpty(): boolean; private validateRequiredFields; private validateStructure; build(): ExpressionSchema; buildOrThrow(): ExpressionSchema; toJSON(): string; summary(): string; } export { ExpressionBuilder, defaultValidator };