import { Token, TokenAST } from "../types";
import { BaseGPXMiddleware } from "./base";
import { DecoderContext } from "./types";
export declare class PerformanceMiddleware extends BaseGPXMiddleware {
    name: string;
    description: string;
    onTokenize(tokens: Token[], context: DecoderContext): Promise<Token[]>;
    onAstGenerate(ast: TokenAST, context: DecoderContext): Promise<TokenAST>;
    onComplete(result: any, context: DecoderContext): Promise<any>;
    private countNodes;
}
export declare class ValidationMiddleware extends BaseGPXMiddleware {
    name: string;
    description: string;
    onComplete(result: any, context: DecoderContext): Promise<any>;
    private validateGPX;
}
export declare function registerDefaultMiddlewares(decoder: any): Promise<void>;
