import { Token, TokenAST } from "../types.js";
import { BaseTCXMiddleware } from "./base.js";
import { TCXContext } from "./types.js";
export declare class TCXPerformanceMiddleware extends BaseTCXMiddleware {
    name: string;
    description: string;
    onTokenize(tokens: Token[], context: TCXContext): Promise<Token[]>;
    onAstGenerate(ast: TokenAST, context: TCXContext): Promise<TokenAST>;
    onComplete(result: any, context: TCXContext): Promise<any>;
    private countNodes;
}
export declare class TCXValidationMiddleware extends BaseTCXMiddleware {
    name: string;
    description: string;
    onComplete(result: any, context: TCXContext): Promise<any>;
    private validateTCX;
}
export declare class TCXEnhancementMiddleware extends BaseTCXMiddleware {
    name: string;
    description: string;
    onComplete(result: any, context: TCXContext): Promise<any>;
    private calculateTotalDistance;
    private calculateTotalDuration;
}
export declare function registerDefaultTCXMiddlewares(decoder: any): Promise<void>;
