import { IModifierService } from "./i-modifier-service"; import { Modifier, ModifiersArray, Node, NodeArray } from "typescript"; import { IFormatter } from "../../formatter/i-formatter-getter"; import { VisibilityKind } from "../../light-ast/dict/visibility/visibility-kind"; import { ModifierKind } from "../../light-ast/dict/modifier/modifier-kind"; /** * A service that helps with Modifiers */ export declare class ModifierService implements IModifierService { private readonly formatter; constructor(formatter: IFormatter); /** * Gets the AccessModifier of the given node, if it has any * @param {Node|ModifiersArray} node * @returns {VisibilityKind | undefined} */ getAccessModifier(node: Node | ModifiersArray): VisibilityKind | undefined; /** * Returns true if the provided Node has a 'async' modifier * @param {Node|ModifiersArray} node * @returns {boolean} */ isAsync(node: Node | ModifiersArray): boolean; /** * Returns true if the provided Node has a 'declare' modifier * @param {Node|ModifiersArray} node * @returns {boolean} */ isDeclared(node: Node | ModifiersArray): boolean; /** * Returns true if the provided Node has a 'default' modifier * @param {Node|ModifiersArray} node * @returns {boolean} */ isDefault(node: Node | ModifiersArray): boolean; /** * Returns true if the provided Node has a 'private' modifier * @param {Node|ModifiersArray} node * @returns {boolean} */ isPrivate(node: Node | ModifiersArray): boolean; /** * Returns true if the provided Node has a 'protected' modifier * @param {Node|ModifiersArray} node * @returns {boolean} */ isProtected(node: Node | ModifiersArray): boolean; /** * Returns true if the provided Node has a 'public' modifier * @param {Node|ModifiersArray} node * @returns {boolean} */ isPublic(node: Node | ModifiersArray): boolean; /** * Returns true if the provided Node has a 'static' modifier * @param {Node|ModifiersArray} node * @returns {boolean} */ isStatic(node: Node | ModifiersArray): boolean; /** * Returns true if the provided Node has a 'abstract' modifier * @param {Node|ModifiersArray} node * @returns {boolean} */ isAbstract(node: Node | ModifiersArray): boolean; /** * Returns true if the provided Node has a 'readonly' modifier * @param {Node|ModifiersArray} node * @returns {boolean} */ isReadonly(node: Node | ModifiersArray): boolean; /** * Returns true if the provided Node has a 'const' modifier * @param {Node|ModifiersArray} node * @returns {boolean} */ isConst(node: Node | ModifiersArray): boolean; /** * Returns true if the provided Node has a 'export' modifier * @param {Node|ModifiersArray} node * @returns {boolean} */ isExported(node: Node | ModifiersArray): boolean; /** * Returns true if the provided Node has a 'default' and 'export' modifier * @param {Node|ModifiersArray} node * @returns {boolean} */ isDefaultExported(node: Node | ModifiersArray): boolean; /** * Creates a Modifier for visibility (either private, protected or public) * @param {VisibilityKind} modifier * @returns {Modifier} */ createVisibilityModifier(modifier: VisibilityKind): Modifier; /** * Returns true if the provided node has a modifier with a name matching the provided one * @param {string} name * @param {Node} node * @returns {boolean} */ hasModifierWithName(name: string, node: Node | ModifiersArray): boolean; /** * Sorts the given ModifiersArray and returns a new one * @param {ModifiersArray} modifiers * @returns {ts.ModifiersArray} */ sortModifiers(modifiers: ModifiersArray): ModifiersArray; /** * Gets the name for a Modifier * @param {Modifier} modifier * @returns {string} */ getModifierName(modifier: Modifier): string; /** * Parses the provided string into a Modifier * @param {ModifierKind} modifier * @returns {Modifier} */ createModifierFromString(modifier: ModifierKind): Modifier; /** * Parses all of the provided modifier names into a NodeArray of modifiers * @param {Iterable} modifiers * @returns {NodeArray} */ createModifiersFromStrings(modifiers: Iterable): NodeArray; /** * Creates a modifier for a 'const' keyword * @returns {Modifier} */ createConstModifier(): Modifier; /** * Creates a modifier for a 'declare' keyword * @returns {Modifier} */ createDeclareModifier(): Modifier; /** * Creates a modifier for a 'default' keyword * @returns {Modifier} */ createDefaultModifier(): Modifier; /** * Creates a modifier for an 'export' keyword * @returns {Modifier} */ createExportModifier(): Modifier; /** * Creates a modifier for a 'readonly' keyword * @returns {Modifier} */ createReadonlyModifier(): Modifier; /** * Creates a modifier for a 'private' keyword * @returns {Modifier} */ createPrivateModifier(): Modifier; /** * Creates a modifier for a 'public' keyword * @returns {Modifier} */ createPublicModifier(): Modifier; /** * Creates a modifier for a 'protected' keyword * @returns {Modifier} */ createProtectedModifier(): Modifier; /** * Creates a modifier for an 'async' keyword * @returns {Modifier} */ createAsyncModifier(): Modifier; /** * Creates a modifier for a 'static' keyword * @returns {Modifier} */ createStaticModifier(): Modifier; /** * Creates a modifier for an 'abstract' keyword * @returns {Modifier} */ createAbstractModifier(): Modifier; }