import { type ArrowInfo } from './Scope.mts'; import { Token } from './tokens.mts'; import { IdentifierParser } from './IdentifierParser.mts'; import type { ParseNode } from './ParseNode.mts'; export declare enum FunctionKind { NORMAL = 0, ASYNC = 1 } interface ArrowParameterConversions { 'IdentifierReference': ParseNode.SingleNameBinding; 'BindingRestElement': ParseNode.BindingRestElement; 'Elision': ParseNode.Elision; 'ArrayLiteral': ParseNode.BindingElement; 'ObjectLiteral': ParseNode.BindingElement; 'AssignmentExpression': ParseNode.SingleNameBinding | ParseNode.BindingElement; 'CoverInitializedName': ParseNode.SingleNameBinding; 'PropertyDefinition': ParseNode.BindingRestProperty | ParseNode.BindingProperty; 'SpreadElement': ParseNode.BindingRestElement; 'AssignmentRestElement': ParseNode.BindingRestElement; } type ConvertArrowParameterResult = T extends keyof ArrowParameterConversions ? ArrowParameterConversions[T] : never; export declare abstract class FunctionParser extends IdentifierParser { abstract parseStatementList(token: string | Token, directives?: readonly string[]): ParseNode.StatementList; abstract parseAssignmentExpression(): ParseNode.AssignmentExpressionOrHigher; abstract parseBindingElement(): ParseNode.BindingElementLike; abstract parseBindingRestElement(): ParseNode.BindingRestElement; parseFunction(isExpression: boolean, kind: FunctionKind): ParseNode.AsyncFunctionDeclaration | ParseNode.AsyncFunctionExpression | ParseNode.AsyncGeneratorDeclaration | ParseNode.AsyncGeneratorExpression | ParseNode.FunctionDeclaration | ParseNode.FunctionExpression | ParseNode.GeneratorDeclaration | ParseNode.GeneratorExpression; private setFunctionBodyGeneric; validateFormalParameters(parameters: ParseNode.FormalParameters, body: ParseNode.FunctionBodyLike | ParseNode.ConciseBody | ParseNode.AsyncConciseBody, wantsUnique?: boolean): void; convertArrowParameter(node: T): ConvertArrowParameterResult; parseArrowFunction(node: ParseNode.Unfinished, { arrowInfo, Arguments }: { arrowInfo?: ArrowInfo; Arguments: ParseNode.CoverParenthesizedExpressionAndArrowParameterList['Arguments']; }, kind: FunctionKind): ParseNode.ArrowFunction | ParseNode.AsyncArrowFunction; private setConciseBodyGeneric; parseConciseBody(isAsync: boolean): ParseNode.ConciseBody | ParseNode.FunctionBody | ParseNode.AsyncConciseBody | ParseNode.AsyncBody; parseFormalParameter(): ParseNode.FormalParameter; parseFormalParameters(): ParseNode.FormalParameters; parseUniqueFormalParameters(): ParseNode.UniqueFormalParameters; parseFunctionBody(isAsync: boolean, isGenerator: boolean, isArrow: boolean): ParseNode.FunctionBodyLike; } export {}; //# sourceMappingURL=FunctionParser.d.mts.map