import { Operand } from '3xpr';
import { Source, Field, Sentence, Page, MappingConfigService } from 'lambdaorm-base';
import { Query } from '../../../../query/domain';
import { OrmH3lp } from '../../../../shared/infrastructure';
import { DmlBuilder, DialectService } from '../../../../language/domain';
export declare abstract class DmlBuilderBase implements DmlBuilder {
    protected readonly source: Source;
    protected readonly mapping: MappingConfigService;
    protected readonly dialect: DialectService;
    protected readonly helper: OrmH3lp;
    constructor(source: Source, mapping: MappingConfigService, dialect: DialectService, helper: OrmH3lp);
    abstract build(sentence: Sentence): Query;
    protected buildSentence(sentence: Sentence): string;
    protected abstract buildSelectSentence(sentence: Sentence): string;
    protected abstract buildInsertSentence(sentence: Sentence): string;
    protected abstract buildUpdateSentence(sentence: Sentence): string;
    protected abstract buildDeleteSentence(sentence: Sentence): string;
    protected buildOperand(operand: Operand): string;
    protected abstract buildField(field: Field): string;
    protected abstract buildObject(operand: Operand): string;
    protected buildPage(sentence: string, operand: Page): string;
    protected buildArrowFunction(operand: Operand): string;
    protected buildFunctionRef(operand: Operand): string;
    protected buildOperator(operand: Operand): string;
    protected buildBlock(operand: Operand): string;
    protected buildList(operand: Operand): string;
    protected buildKeyValue(operand: Operand): string;
    protected buildVariable(operand: Operand): string;
    protected buildConstant(operand: Operand): string;
}
