import type { CommandNode, ASTNode, Token } from '../types';
import type { ParserContext } from '../parser-types';
export interface ParsedStatementResult {
    node: CommandNode;
    tokens: Token[];
    context?: ParserContext;
    metadata?: ParsingMetadata;
}
export interface ParsingMetadata {
    duration?: number;
    warnings?: string[];
    [key: string]: unknown;
}
export interface ASTNodeAssertable extends CommandNode {
    name: string;
    type: 'Command';
    children?: CommandNode[];
    arguments: ASTNode[];
    target?: ASTNode;
}
export declare function isCommandNode(node: unknown): node is CommandNode;
export declare function assertCommandNode(node: unknown): asserts node is CommandNode;
export declare function getNodeProperty<T = unknown>(node: unknown, property: string): T | undefined;
export declare function assertNodeHasProperty<T = unknown>(node: unknown, property: string): asserts node is Record<string, T>;
//# sourceMappingURL=test-helpers.d.ts.map