import { t as Alg, u as PuzzleLoader } from '../PuzzleLoader-lDTuf9C3.js';
import 'three/src/Three.js';

declare const countAnimatedLeaves: (alg: Alg) => number;

declare enum CommonMetric {
    OuterBlockTurnMetric = "OBTM",
    RangeBlockTurnMetric = "RBTM",
    SingleSliceTurnMetric = "SSTM",
    OuterBlockQuantumTurnMetric = "OBQTM",
    RangeBlockQuantumTurnMetric = "RBQTM",
    SingleSliceQuantumTurnMetric = "SSQTM",
    ExecutionTurnMetric = "ETM"
}
declare enum CommonMetricAlias {
    QuantumTurnMetric = "OBQTM",
    HandTurnMetric = "OBTM",
    SliceTurnMetric = "RBTM"
}

declare const countMoves: (alg: Alg) => number;
declare const countMovesETM: (alg: Alg) => number;
/**
 * Only implemented so far:
 *
 * - 3x3x3: OBTM, RBTM, ETM
 */
declare function countMetricMoves(puzzleLoader: PuzzleLoader, metric: CommonMetric, alg: Alg): number;

export { CommonMetric as ExperimentalCommonMetric, CommonMetricAlias as ExperimentalCommonMetricAlias, countAnimatedLeaves as experimentalCountAnimatedLeaves, countMetricMoves as experimentalCountMetricMoves, countMoves as experimentalCountMoves, countMovesETM as experimentalCountMovesETM };
