import type { ColumnExtraction, ColumnMetadata, DrillThru, ExpressionArg, ExpressionClause, ExpressionParts, Query } from "./types";
export declare function extract(query: Query, stageIndex: number, extraction: ColumnExtraction): Query;
export declare function extractionExpression(query: Query, stageIndex: number, extraction: ColumnExtraction): any;
export declare function extractionsForDrill(drill: DrillThru): ColumnExtraction[];
export declare function columnExtractions(query: Query, column: ColumnMetadata): ColumnExtraction[];
export type ColumnExtractionTag = "hour-of-day" | "day-of-month" | "day-of-week" | "month-of-year" | "quarter-of-year" | "year" | "domain" | "host" | "subdomain";
export declare function functionsUsedByExpression(query: Query, stageIndex: number, expression: ExpressionClause): string[];
/**
 * Return the functions used by a specific column extraction.
 */
export declare function functionsUsedByExtraction(query: Query, stageIndex: number, extraction: ColumnExtraction): string[];
export declare function isExpressionParts(arg: ExpressionParts | ExpressionArg): arg is ExpressionParts;
