import { AstNode, KNativePointer } from "../../src/reexport-for-generated";
import { Es2pandaAstNodeType } from "./../Es2pandaEnums";
import { Expression } from "./Expression";
import { Identifier } from "./Identifier";
import { Statement } from "./Statement";
import { varbinder } from "./varbinder";
export declare class AnnotationUsage extends Statement {
    constructor(pointer: KNativePointer, astNodeType: Es2pandaAstNodeType);
    static create1AnnotationUsage(expr: Expression | undefined, properties: readonly AstNode[]): AnnotationUsage;
    static updateAnnotationUsage(original?: AnnotationUsage, expr?: Expression): AnnotationUsage;
    static update1AnnotationUsage(original: AnnotationUsage | undefined, expr: Expression | undefined, properties: readonly AstNode[]): AnnotationUsage;
    get expr(): Expression | undefined;
    get properties(): readonly AstNode[];
    /** @deprecated */
    addProperty(property?: AstNode): this;
    /** @deprecated */
    setProperties(properties: readonly AstNode[]): this;
    /** @deprecated */
    setScope(scope?: varbinder.AnnotationParamScope): this;
    get baseName(): Identifier | undefined;
    /** @deprecated */
    setHasParameterParen(v: boolean): this;
    get hasParameterParen(): boolean;
    protected readonly brandAnnotationUsage: undefined;
}
export declare function isAnnotationUsage(node: object | undefined): node is AnnotationUsage;
