import * as ng from '@angular/compiler/src/expression_parser/ast';
import * as b from '@babel/types';
import { Context } from './context';
import { NGNode, RawNGComment, RawNGSpan } from './types';
declare module '@babel/types' {
    interface SourceLocation {
        identifierName?: string;
    }
    interface NumericLiteral {
        extra: {
            raw: string;
            rawValue: number;
        };
    }
    interface StringLiteral {
        extra: {
            raw: string;
            rawValue: string;
        };
    }
    interface ObjectProperty {
        method: boolean;
    }
    type CommentLine = Pick<b.LineComment, Exclude<keyof b.LineComment, 'type'>> & {
        type: 'CommentLine';
    };
}
export declare type InputNode = ng.AST | RawNGComment;
export declare type OutputNode = NGNode | b.CommentLine;
export declare const transform: (node: InputNode, context: Context, isInParentParens?: boolean) => OutputNode;
export declare function transformSpan(span: RawNGSpan, context: Context, processSpan?: boolean, hasParentParens?: boolean): {
    start: NonNullable<b.BaseNode['start']>;
    end: NonNullable<b.BaseNode['end']>;
    loc: NonNullable<b.BaseNode['loc']>;
};
