import { IndexDefinition } from "../definition";
import { IndexManager } from "../index-manager";
import { Logger } from "../options";
/**
 * Abstract base class for index mutations
 */
export declare abstract class IndexMutation {
    definition: IndexDefinition;
    readonly name: string;
    readonly scope: string;
    readonly collection: string;
    phase: number;
    /**
     * A display name for the index which includes the scope and collection if non-default.
     */
    get displayName(): string;
    constructor(definition: IndexDefinition, name?: string);
    abstract execute(indexManager: IndexManager, logger: Logger): Promise<void>;
    abstract print(logger: Logger): void;
    isSafe(): boolean;
}
