import * as ts from "typescript";
import { PropertyDeclarationStructure } from "./../../structures";
import { Node } from "./../common";
import { PropertyNamedNode, TypedNode, InitializerExpressionableNode, QuestionTokenableNode, ReadonlyableNode, JSDocableNode, StaticableNode, ModifierableNode, ScopedNode, DecoratableNode, ChildOrderableNode } from "./../base";
import { AbstractableNode } from "./base";
export declare const PropertyDeclarationBase: (new (...args: any[]) => ChildOrderableNode) & (new (...args: any[]) => DecoratableNode) & (new (...args: any[]) => AbstractableNode) & (new (...args: any[]) => ScopedNode) & (new (...args: any[]) => StaticableNode) & (new (...args: any[]) => JSDocableNode) & (new (...args: any[]) => ReadonlyableNode) & (new (...args: any[]) => QuestionTokenableNode) & (new (...args: any[]) => InitializerExpressionableNode) & (new (...args: any[]) => TypedNode) & (new (...args: any[]) => PropertyNamedNode) & (new (...args: any[]) => ModifierableNode) & typeof Node;
export declare class PropertyDeclaration extends PropertyDeclarationBase<ts.PropertyDeclaration> {
    /**
     * Fills the node from a structure.
     * @param structure - Structure to fill.
     */
    fill(structure: Partial<PropertyDeclarationStructure>): this;
    /**
     * Removes the property.
     */
    remove(): void;
}
