import * as Knex from "knex";
import * as ts from "./interfaces";
export declare const sqlSchemaResource: ({ resource_schema, resource_name }: {
    resource_schema: any;
    resource_name: any;
}) => string;
export declare const toSearchQuery: ({ db, st, resource, components, context, schemaResource, subqueryOptions: { subquery, aggregationFn }, geoFields, }: ts.IParamsToSearchQuery) => Knex.QueryBuilder<unknown, {
    _base: unknown;
    _hasSelection: true;
    _keys: string;
    _aliases: {};
    _single: false;
    _intersectProps: {};
    _unionProps: never;
}[]>;
export declare const toCreateQuery: ({ db, st, resource, query, context, schemaResource, supportsReturn, }: ts.IParamsToQueryBase) => Knex.QueryBuilder<unknown, {
    _base: unknown;
    _hasSelection: true;
    _keys: string;
    _aliases: {};
    _single: false;
    _intersectProps: {};
    _unionProps: never;
}[]>;
export declare const toReadQuery: ({ db, st, resource, query, context, schemaResource, }: ts.IParamsToQueryBase) => Knex.QueryBuilder<unknown, {
    _base: unknown;
    _hasSelection: true;
    _keys: never;
    _aliases: string[];
    _single: false;
    _intersectProps: {};
    _unionProps: never;
}[]>;
export declare const toUpdateQuery: (keys: string[]) => ({ db, st, resource, query, context, searchQuery, schemaResource, supportsReturn, }: ts.IParamsToQueryWithSearch) => Knex.QueryBuilder<any, {
    _base: any;
    _hasSelection: true;
    _keys: string;
    _aliases: {};
    _single: false;
    _intersectProps: {};
    _unionProps: never;
}[]>;
export declare const toDeleteQuery: (keys: string[]) => ({ db, st, resource, query, searchQuery, hardDelete, schemaResource, }: ts.IParamsToDeleteQueryWithSearch) => Promise<unknown>;
export declare const aggregationFnBuilder: (db: Knex) => (calculatedFields: any, groupBy?: string[]) => (knex_query: Knex.QueryBuilder) => Knex.QueryBuilder;
export declare const genCountQuery: (db: any, knex_query: Knex.QueryBuilder) => Knex.QueryBuilder;
