import type { ExecutionContext, TypedExecutionContext } from '../../types/core';
import type { ASTNode, ExpressionNode } from '../../types/base-types';
import type { ExpressionEvaluator } from '../../core/expression-evaluator';
import { type DecoratedCommand, type CommandMetadata } from '../decorators';
export interface MeasureCommandInput {
    target?: string | HTMLElement;
    property?: string;
    variable?: string;
}
export interface MeasureCommandOutput {
    result: number;
    wasAsync: boolean;
    element: HTMLElement;
    property: string;
    value: number;
    unit: string;
    stored?: boolean;
}
export declare class MeasureCommand implements DecoratedCommand {
    readonly name: string;
    readonly metadata: CommandMetadata;
    parseInput(raw: {
        args: ASTNode[];
        modifiers: Record<string, ExpressionNode>;
    }, evaluator: ExpressionEvaluator, context: ExecutionContext): Promise<MeasureCommandInput>;
    execute(input: MeasureCommandInput, context: TypedExecutionContext): Promise<MeasureCommandOutput>;
    private getMeasurement;
}
export declare const createMeasureCommand: () => MeasureCommand;
export default MeasureCommand;
//# sourceMappingURL=measure.d.ts.map