import type { SolidityBuildInfo, SolidityBuildInfoOutput } from "hardhat/types/solidity";
import { ContractDefinition, EnumDefinition, ErrorDefinition, EventDefinition, FunctionDefinition, ModifierDefinition, ModifierInvocation, SourceLocation, SourceUnit, StructDefinition, VariableDeclaration } from "solidity-ast";
import type { Node } from "solidity-ast/node.js";
import { ContractInfo, DocumentationBlock, NatSpecDocumentation } from "./types.js";
export declare class Parser {
    private contractBuildInfo;
    private contractBuildInfoOutput;
    private readonly deref;
    constructor(contractBuildInfo: SolidityBuildInfo, contractBuildInfoOutput: SolidityBuildInfoOutput);
    parseContractInfo(source: string, name: string): Promise<ContractInfo>;
    isInternal(node: FunctionDefinition | VariableDeclaration): boolean;
    isPrivateOrInternal(node: FunctionDefinition | VariableDeclaration): boolean;
    isPublicOrExternal(node: FunctionDefinition | VariableDeclaration): boolean;
    parseSelector(node: FunctionDefinition | VariableDeclaration): string;
    applyPrettier(text: string): Promise<string>;
    parseHeader(node: any): string;
    parseFullSign(node: any): Promise<string>;
    parseDocumentation(nodes: Node[], name: string): Promise<DocumentationBlock>;
    removeTypePrefix(typeString: string): string;
    buildParameterString(parameters: VariableDeclaration[], delimiter?: string, beginning?: string, ending?: string): string;
    parseModifiersString(modifiers: ModifierInvocation[]): string;
    parseFullFunctionSign(functionDefinition: FunctionDefinition): Promise<string>;
    parseStringFromSourceCode(src: SourceLocation): string;
    parseFullStateVariableSign(stateVariable: VariableDeclaration): string;
    parseFullEventSign(eventDefinition: EventDefinition): string;
    parseFullErrorSign(errorDefinition: ErrorDefinition): string;
    parseFullStructSign(structDefinition: StructDefinition): string;
    parseFullEnumSign(enumDefinition: EnumDefinition): string;
    parseFullModifierSign(modifierDefinition: ModifierDefinition): string;
    parseFullContractSign(contractDefinition: ContractDefinition): string;
    parseLicense(node: SourceUnit): string;
    deleteCommentSymbols(text: string): string;
    replaceMultipleNewLinesWithOne(text: string): string;
    getValidParentNodeToInheritDocumentation(baseNode: FunctionDefinition | VariableDeclaration): FunctionDefinition | null;
    findFunctionDefinitionByContractName(node: FunctionDefinition | VariableDeclaration, contractName: string): FunctionDefinition | undefined;
    findModifierDefinitionByContractName(node: ModifierDefinition, contractName: string): ModifierDefinition | undefined;
    parseNameAndDescription(text: string): [name: string, description: string];
    joinDescriptionLines(text: string): string;
    parseNatSpecDocumentation(baseNode: any): NatSpecDocumentation;
}
//# sourceMappingURL=Parser.d.ts.map