import * as ts from "typescript";
import { SetAccessorDeclarationStructure } from "./../../structures";
import { Node } from "./../common";
import { PropertyNamedNode, StaticableNode, ScopedNode, DecoratableNode, BodiedNode, TextInsertableNode, ChildOrderableNode } from "./../base";
import { FunctionLikeDeclaration } from "./../function";
import { AbstractableNode } from "./base";
import { GetAccessorDeclaration } from "./GetAccessorDeclaration";
export declare const SetAccessorDeclarationBase: (new (...args: any[]) => ChildOrderableNode) & (new (...args: any[]) => TextInsertableNode) & (new (...args: any[]) => DecoratableNode) & (new (...args: any[]) => AbstractableNode) & (new (...args: any[]) => ScopedNode) & (new (...args: any[]) => StaticableNode) & (new (...args: any[]) => BodiedNode) & (new (...args: any[]) => FunctionLikeDeclaration) & (new (...args: any[]) => PropertyNamedNode) & typeof Node;
export declare class SetAccessorDeclaration extends SetAccessorDeclarationBase<ts.SetAccessorDeclaration> {
    /**
     * Fills the node from a structure.
     * @param structure - Structure to fill.
     */
    fill(structure: Partial<SetAccessorDeclarationStructure>): this;
    /**
     * Gets the corresponding get accessor if one exists.
     */
    getGetAccessor(): GetAccessorDeclaration | undefined;
    /**
     * Gets the corresponding get accessor or throws if not exists.
     */
    getGetAccessorOrThrow(): GetAccessorDeclaration;
    /**
     * Removes the set accessor.
     */
    remove(): void;
}
