import { Property, Relation, Behavior, Constraint } from '../../schema/domain';
import { Parameter, Operand, Position } from '3xpr';
import { Type } from 'typ3s';
import { SentenceAction } from '../../schema/domain/sentence';
export declare class Constant extends Operand {
    eval(): any;
}
export declare class Field extends Operand {
    entity: string;
    alias?: string;
    isRoot?: boolean;
    prefix?: string;
    constructor(pos: Position, entity: string, name: string, returnType?: Type, alias?: string, isRoot?: boolean);
    fieldName(): any;
    clone(): Field;
}
export declare class Clause extends Operand {
    alias: string;
    entity: string;
    constructor(pos: Position, name: string, children: Operand[], entity: string, alias: string);
}
export declare class Map extends Clause {
}
export declare class Filter extends Clause {
}
export declare class GroupBy extends Clause {
}
export declare class Having extends Clause {
}
export declare class Sort extends Clause {
}
export declare class Page extends Clause {
}
export declare class From extends Clause {
}
export declare class Join extends Clause {
}
export declare class Insert extends Clause {
}
export declare class BulkInsert extends Clause {
}
export declare class Update extends Clause {
}
export declare class Upsert extends Clause {
}
export declare class Delete extends Clause {
}
export declare class BulkDelete extends Clause {
}
export declare class BulkMerge extends Clause {
}
export declare class Sentence extends Operand {
    columns: Property[];
    parameters: Parameter[];
    entity: string;
    alias: string;
    action: SentenceAction;
    constraints: Constraint[];
    values: Behavior[];
    defaults: Behavior[];
    constructor(pos: Position, name: string, children: Operand[], entity: string, alias: string);
    getIncludes(): SentenceInclude[];
    getCompositeIncludes(): SentenceInclude[];
}
export declare class SentenceInclude extends Operand {
    relation: Relation;
    constructor(pos: Position, name: string, children: Operand[], relation: Relation);
}
