import type { TypedExpressionImplementation, TypedExecutionContext, HyperScriptValue, EvaluationResult } from '../../types/command-types';
export declare class TimeParsingExpression implements TypedExpressionImplementation<number> {
    readonly name = "time-parse";
    readonly category: "conversion";
    readonly precedence = 1;
    readonly associativity: "left";
    readonly outputType: "number";
    readonly analysisInfo: {
        isPure: boolean;
        canThrow: boolean;
        complexity: "O(1)";
        dependencies: never[];
    };
    private readonly timeUnits;
    evaluate(_context: TypedExecutionContext, timeString: string, defaultUnit?: string): Promise<EvaluationResult<number>>;
    private getUnitMultiplier;
}
export declare class DurationFormattingExpression implements TypedExpressionImplementation<string> {
    readonly name = "duration-format";
    readonly category: "conversion";
    readonly precedence = 1;
    readonly associativity: "left";
    readonly outputType: "string";
    readonly analysisInfo: {
        isPure: boolean;
        canThrow: boolean;
        complexity: "O(1)";
        dependencies: never[];
    };
    private readonly units;
    evaluate(_context: TypedExecutionContext, milliseconds: number, format?: string, maxUnits?: number): Promise<EvaluationResult<string>>;
}
export declare class TimeArithmeticExpression implements TypedExpressionImplementation<number> {
    readonly name = "time-arithmetic";
    readonly category: "arithmetic";
    readonly precedence = 6;
    readonly associativity: "left";
    readonly outputType: "number";
    readonly analysisInfo: {
        isPure: boolean;
        canThrow: boolean;
        complexity: "O(1)";
        dependencies: string[];
    };
    evaluate(context: TypedExecutionContext, operation: string, time1: HyperScriptValue, time2: HyperScriptValue): Promise<EvaluationResult<number>>;
}
export declare const enhancedTimeExpressions: {
    readonly 'time-parse': TimeParsingExpression;
    readonly 'duration-format': DurationFormattingExpression;
    readonly 'time-arithmetic': TimeArithmeticExpression;
};
export declare function createTimeParsing(): TimeParsingExpression;
export declare function createDurationFormatting(): DurationFormattingExpression;
export declare function createTimeArithmetic(): TimeArithmeticExpression;
export declare function parseTime(timeString: string, context: TypedExecutionContext, defaultUnit?: string): Promise<EvaluationResult<number>>;
export declare function formatDuration(milliseconds: number, context: TypedExecutionContext, format?: string, maxUnits?: number): Promise<EvaluationResult<string>>;
export declare function performTimeArithmetic(operation: string, time1: HyperScriptValue, time2: HyperScriptValue, context: TypedExecutionContext): Promise<EvaluationResult<number>>;
export default enhancedTimeExpressions;
//# sourceMappingURL=index.d.ts.map