import { TimeSeriesIndexDefinition } from "./TimeSeriesIndexDefinition.js";
import { AbstractIndexCreationTaskBase } from "../AbstractIndexCreationTaskBase.js";
import { FieldIndexing, FieldStorage, FieldTermVector } from "../Enums.js";
import { SpatialOptions, SpatialOptionsFactory } from "../Spatial.js";
import { FieldVectorOptions } from "../../Queries/VectorSearch/VectorSearchOptions.js";
/**
 * Abstract class used to provide infrastructure service for actual creation tasks
 */
export declare abstract class AbstractGenericTimeSeriesIndexCreationTask extends AbstractIndexCreationTaskBase<TimeSeriesIndexDefinition> {
    protected _reduce: string;
    protected _storesStrings: Record<string, FieldStorage>;
    protected _indexesStrings: Record<string, FieldIndexing>;
    protected _analyzersStrings: Record<string, string>;
    protected _indexSuggestions: Set<string>;
    protected _termVectorsStrings: Record<string, FieldTermVector>;
    protected _spatialOptionsStrings: Record<string, SpatialOptions>;
    protected _vectorOptionsStrings: Record<string, FieldVectorOptions>;
    protected _outputReduceToCollection: string;
    protected _patternForOutputReduceToCollectionReferences: string;
    protected _patternReferencesCollectionName: string;
    constructor();
    /**
     * Gets a value indicating whether this instance is map reduce index definition
     */
    get isMapReduce(): boolean;
    /**
     * Register a field to be indexed
     */
    protected index(field: string, indexing: FieldIndexing): void;
    /**
     * Register a field to be spatially indexed
     */
    protected spatial(field: string, indexing: (spatialOptsFactory: SpatialOptionsFactory) => SpatialOptions): void;
    protected storeAllFields(storage: FieldStorage): void;
    /**
     * Register a field to be stored
     */
    protected store(field: string, storage: FieldStorage): void;
    /**
     * Register a field to be analyzed
     */
    protected analyze(field: string, analyzer: string): void;
    /**
     * Register a field to have term vectors
     */
    protected termVector(field: string, termVector: FieldTermVector): void;
    protected suggestion(field: string): void;
    protected vectorField(field: string, vector: FieldVectorOptions): void;
}
//# sourceMappingURL=AbstractGenericTimeSeriesIndexCreationTask.d.ts.map