export declare class AstTransformer<InputType extends {
    ast_class: unknown;
}, OutputType> {
    reduceErrorByKey(input: InputType, output: OutputType, errorByKey: {
        [key: string]: unknown;
    }): {
        input: InputType;
        output: OutputType;
        error?: unknown;
    };
    reduceMapErrors(results: {
        input: InputType;
        output: OutputType;
        error?: unknown;
    }[]): {
        input: InputType[];
        output: OutputType[];
        error?: unknown;
    };
    transform(input: InputType): {
        input: InputType;
        output: OutputType;
        error?: unknown;
    };
    transformGeneric(input: InputType): {
        input: InputType;
        output: OutputType;
        error?: unknown;
    };
    transformGenericAttribute(input: InputType, key: string, value: unknown): {
        error?: unknown;
        input: unknown;
        output: unknown;
    };
    transformGenericOutputByKey(input: InputType, outputByKey: {
        [key: string]: unknown;
    }, errorByKey: {
        [key: string]: unknown;
    }): {
        input: InputType;
        output: OutputType;
        error?: unknown;
    };
}
export declare class AstVisitor<InputType extends {
    ast_class: unknown;
}> {
    visit(node: InputType): void;
    visitGeneric(node: InputType): void;
    visitGenericAttribute(node: InputType, key: string, value: unknown): void;
}
export declare function reduceMapErrors<InputType, OutputType>(results: {
    input: InputType;
    output: OutputType;
    error?: unknown;
}[]): {
    input: InputType[];
    output: OutputType[];
    error?: {
        [index: number]: unknown;
    };
};
