import * as Druid from 'druid.d.ts'; import { PlywoodRequester } from 'plywood-base-api'; import { Transform } from 'readable-stream'; import { Attributes, PlywoodRange } from '../datatypes'; import { ApplyExpression, ChainableExpression, Expression, FilterExpression, SortExpression, SplitExpression } from '../expressions'; import { ExtendableError } from '../helper/utils'; import { External, ExternalJS, ExternalValue, Inflater, IntrospectionDepth, QueryAndPostTransform, QuerySelection } from './baseExternal'; import { CustomDruidAggregations, CustomDruidTransforms } from './utils/druidTypes'; export declare class InvalidResultError extends ExtendableError { result: any; constructor(message: string, result: any); } export interface ParsedResplitAgg { resplitAgg: ChainableExpression; resplitApply: ApplyExpression; resplitSplit: SplitExpression; } export interface GranularityInflater { granularity: Druid.Granularity; inflater: Inflater; } export interface DimensionInflater { virtualColumn?: Druid.VirtualColumn; dimension: Druid.DimensionSpec; inflater?: Inflater; } export interface DimensionInflaterHaving extends DimensionInflater { having?: Expression; } export interface DruidSplit { queryType: string; timestampLabel?: string; virtualColumns?: Druid.VirtualColumn[]; granularity: Druid.Granularity | string; dimension?: Druid.DimensionSpec; dimensions?: Druid.DimensionSpec[]; leftoverHavingFilter?: Expression; postTransform: Transform; } export declare class DruidExternal extends External { static engine: string; static type: string; static TIME_ATTRIBUTE: string; static SELECT_MAX_LIMIT: number; static fromJS(parameters: ExternalJS, requester: PlywoodRequester): DruidExternal; static getSourceList(requester: PlywoodRequester): Promise; static getVersion(requester: PlywoodRequester): Promise; static isTimestampCompatibleSort(sort: SortExpression, label: string): boolean; static timeBoundaryPostTransformFactory(applies?: ApplyExpression[]): Transform; static generateMaker(aggregation: Druid.Aggregation): Expression; static columnMetadataToRange(columnMetadata: Druid.ColumnMetadata): null | PlywoodRange; static segmentMetadataPostProcess(timeAttribute: string, res: Druid.SegmentMetadataResults): Attributes; static introspectAttributesWithSegmentMetadata(dataSource: Druid.DataSource, requester: PlywoodRequester, timeAttribute: string, context: Record, depth: IntrospectionDepth): Promise; static movePagingIdentifiers(pagingIdentifiers: Druid.PagingIdentifiers, increment: number): Druid.PagingIdentifiers; static parseResplitAgg(applyExpression: Expression): ParsedResplitAgg | null; timeAttribute: string; customAggregations: CustomDruidAggregations; customTransforms: CustomDruidTransforms; allowEternity: boolean; allowSelectQueries: boolean; exactResultsOnly: boolean; querySelection: QuerySelection; context: Record; constructor(parameters: ExternalValue); valueOf(): ExternalValue; toJS(): ExternalJS; equals(other: DruidExternal | undefined): boolean; canHandleFilter(filter: FilterExpression): boolean; canHandleSort(sort: SortExpression): boolean; getQuerySelection(): QuerySelection; getDruidDataSource(): Druid.DataSource; getTimeAttribute(): string | undefined; splitExpressionToGranularityInflater(splitExpression: Expression, label: string): GranularityInflater | null; makeOutputName(name: string): string; topNCompatibleSort(): boolean; expressionToDimensionInflater(expression: Expression, label: string): DimensionInflater; expressionToDimensionInflaterHaving(expression: Expression, label: string, havingFilter: Expression): DimensionInflaterHaving; splitToDruid(split: SplitExpression): DruidSplit; isMinMaxTimeExpression(applyExpression: Expression): boolean; getTimeBoundaryQueryAndPostTransform(): QueryAndPostTransform; nestedGroupByIfNeeded(): QueryAndPostTransform | null; getQueryAndPostTransform(): QueryAndPostTransform; protected getIntrospectAttributes(depth: IntrospectionDepth): Promise; } //# sourceMappingURL=druidExternal.d.ts.map