import { KNativePointer } from "../../src/reexport-for-generated";
import { ClassElement } from "./ClassElement";
import { Es2pandaAstNodeType } from "./../Es2pandaEnums";
import { Es2pandaModifierFlags } from "./../Es2pandaEnums";
import { Es2pandaOverloadDeclFlags } from "./../Es2pandaEnums";
import { Expression } from "./Expression";
import { Identifier } from "./Identifier";
import { SrcDumper } from "./SrcDumper";
export declare class OverloadDeclaration extends ClassElement {
    constructor(pointer: KNativePointer, astNodeType: Es2pandaAstNodeType);
    static createOverloadDeclaration(key: Expression | undefined, modifiers: Es2pandaModifierFlags): OverloadDeclaration;
    static updateOverloadDeclaration(original: OverloadDeclaration | undefined, key: Expression | undefined, modifiers: Es2pandaModifierFlags): OverloadDeclaration;
    get flag(): Es2pandaOverloadDeclFlags;
    get overloadedList(): readonly Expression[];
    /** @deprecated */
    setOverloadedList(overloadedList: readonly Expression[]): this;
    /** @deprecated */
    pushFront(overloadedExpression?: Identifier): this;
    /** @deprecated */
    addOverloadDeclFlag(overloadFlag: Es2pandaOverloadDeclFlags): this;
    get isConstructorOverloadDeclaration(): boolean;
    get isFunctionOverloadDeclaration(): boolean;
    get isClassMethodOverloadDeclaration(): boolean;
    get isInterfaceMethodOverloadDeclaration(): boolean;
    /** @deprecated */
    dumpModifier(dumper?: SrcDumper): this;
    protected readonly brandOverloadDeclaration: undefined;
}
export declare function isOverloadDeclaration(node: object | undefined): node is OverloadDeclaration;
