import { KNativePointer } from "../../src/reexport-for-generated";
import { AnnotatedExpression } from "./AnnotatedExpression";
import { Es2pandaAstNodeType } from "./../Es2pandaEnums";
import { Es2pandaTypeRelationFlag } from "./../Es2pandaEnums";
import { Expression } from "./Expression";
import { TypeNode } from "./TypeNode";
import { checker } from "./checker";
export declare class ArrayExpression extends AnnotatedExpression {
    constructor(pointer: KNativePointer, astNodeType: Es2pandaAstNodeType);
    static create1ArrayExpression(nodeType: Es2pandaAstNodeType, elements: readonly Expression[], trailingComma: boolean): ArrayExpression;
    static updateArrayExpression(original: ArrayExpression | undefined, elements: readonly Expression[]): ArrayExpression;
    static update1ArrayExpression(original: ArrayExpression | undefined, nodeType: Es2pandaAstNodeType, elements: readonly Expression[], trailingComma: boolean): ArrayExpression;
    get elements(): readonly Expression[];
    /** @deprecated */
    setElements(elements: readonly Expression[]): this;
    get isDeclaration(): boolean;
    get isOptional(): boolean;
    /** @deprecated */
    setDeclaration(): this;
    /** @deprecated */
    setOptional(optional_arg: boolean): this;
    get convertibleToArrayPattern(): boolean;
    /** @deprecated */
    setPreferredTypeOnFuncParam(param: checker.Type | undefined, flags: Es2pandaTypeRelationFlag): this;
    /** @deprecated */
    setPreferredTypeBasedOnFuncParam(param: checker.Type | undefined, flags: Es2pandaTypeRelationFlag): this;
    get typeAnnotation(): TypeNode | undefined;
    /** @deprecated */
    setTsTypeAnnotation(typeAnnotation?: TypeNode): this;
    protected readonly brandArrayExpression: undefined;
}
export declare function isArrayExpression(node: object | undefined): node is ArrayExpression;
