import { ApiRequest, Association, FilterParam, FindAttributeOptions, FindOptions, Include, Includeable, IncludeOptions, IncludeThroughOptions, Model } from '../vendor';
export declare class QueryOptionBuilder {
    private whereParam;
    private order;
    private attributes;
    private pg;
    private includeOptions;
    private transaction;
    constructor(req?: ApiRequest<any>);
    sortBy(key: string, orderby: string): QueryOptionBuilder;
    where(params?: Array<FilterParam<any>>, resolver?: (id: number) => string): QueryOptionBuilder;
    include(includes?: Include[], resolver?: (inc: Include) => IncludeOptions): QueryOptionBuilder;
    includeModel(model: Model<any, any> | any, where?: any, attributes?: string[], as?: string, required?: boolean, association?: Association, through?: IncludeThroughOptions, include?: Includeable[]): QueryOptionBuilder;
    addAttribute(attribute: string | [string, string]): QueryOptionBuilder;
    addAttributes(attributes: string[]): QueryOptionBuilder;
    excludeAttribute(attribute: string): QueryOptionBuilder;
    excludeAttributes(attrb: string[]): QueryOptionBuilder;
    attributeArrayToObject(attrb: FindAttributeOptions): {
        exclude: string[];
        include?: (string | import("sequelize/types").ProjectionAlias)[];
    } | {
        exclude?: string[];
        include: (string | import("sequelize/types").ProjectionAlias)[];
    };
    addSqlFunc(funcName: string, columnName?: string, aliasName?: string): QueryOptionBuilder;
    addWhereClauseFunc(): QueryOptionBuilder;
    get findOptions(): FindOptions;
    private addAdvWhareRec;
    private fillIncludes;
}
