import type { FieldUsage, FilterCondition, PipeSegment, Sampling } from '../../../model/malloy_types'; import type { FieldName, SourceFieldSpace } from '../types/field-space'; import { Limit } from '../query-properties/limit'; import { IndexFieldSpace } from '../field-space/index-field-space'; import type { QueryProperty } from '../types/query-property'; import type { QueryBuilder } from '../types/query-builder'; import type { QueryInputSpace } from '../field-space/query-input-space'; import type { QueryOperationSpace } from '../field-space/query-spaces'; import type { MalloyElement } from '../types/malloy-element'; export declare class IndexBuilder implements QueryBuilder { filters: FilterCondition[]; limit?: Limit; indexOn?: FieldName; sample?: Sampling; resultFS: IndexFieldSpace; inputFS: QueryInputSpace; alwaysJoins: string[]; requiredGroupBys: string[]; readonly type = "index"; constructor(inputFS: SourceFieldSpace, refineThis: PipeSegment | undefined, isNestIn: QueryOperationSpace | undefined, astEl: MalloyElement); execute(qp: QueryProperty): void; get fieldUsage(): FieldUsage[]; finalize(from: PipeSegment | undefined): PipeSegment; }