import { IPropertyService } from "./i-property-service"; import { PropertyDeclaration, SyntaxKind } from "typescript"; import { NodeService } from "../node/node-service"; import { IRemover } from "../../remover/i-remover-base"; import { ITypescriptASTUtil } from "@wessberg/typescript-ast-util"; import { IDecoratorService } from "../decorator/i-decorator-service"; import { ITypescriptLanguageService } from "@wessberg/typescript-language-service"; import { ITypeNodeService } from "../type-node/i-type-node-service"; import { IModifierService } from "../modifier/i-modifier-service"; import { IPropertyNameService } from "../property-name/i-property-name-service"; import { VisibilityKind } from "../../light-ast/dict/visibility/visibility-kind"; import { IUpdater } from "../../updater/i-updater-getter"; import { IFormatter } from "../../formatter/i-formatter-getter"; import { IJoiner } from "../../joiner/i-joiner-getter"; import { INodeToDictMapper } from "../../node-to-dict-mapper/i-node-to-dict-mapper-getter"; /** * A service for working with PropertyDeclarations */ export declare class PropertyService extends NodeService implements IPropertyService { private readonly typeNodeService; private readonly formatter; private readonly modifierService; private readonly propertyNameService; private readonly nodeToDictMapper; /** * The allowed SyntaxKinds when parsing a SourceFile for relevant Expressions * @type {Iterable} */ protected readonly ALLOWED_KINDS: Iterable; constructor(typeNodeService: ITypeNodeService, formatter: IFormatter, modifierService: IModifierService, propertyNameService: IPropertyNameService, nodeToDictMapper: INodeToDictMapper, joiner: IJoiner, updater: IUpdater, remover: IRemover, astUtil: ITypescriptASTUtil, languageService: ITypescriptLanguageService, decoratorService: IDecoratorService); /** * Changes the visibility of the given PropertyDeclaration * @param {VisibilityKind} visibility * @param {PropertyDeclaration} property * @returns {PropertyDeclaration} */ changeVisibility(visibility: VisibilityKind, property: PropertyDeclaration): PropertyDeclaration; /** * Gets the name of the given PropertyDeclaration * @param {PropertyDeclaration} property * @returns {string} */ getName(property: PropertyDeclaration): string; /** * Returns true if the PropertyDeclaration is optional * @param {PropertyDeclaration} property * @returns {boolean} */ isOptional(property: PropertyDeclaration): boolean; /** * Returns true if the PropertyDeclaration is optional * @param {PropertyDeclaration} property * @returns {boolean} */ isStatic(property: PropertyDeclaration): boolean; /** * Gets the name of the type of the PropertyDeclaration * @param {PropertyDeclaration} property * @returns {string} */ getTypeName(property: PropertyDeclaration): string | undefined; }