import * as esrecurse from "esrecurse"; import * as ESTree from "estree"; export declare type AssignmentType = ESTree.AssignmentPattern | ESTree.AssignmentExpression; export interface ICallbackOption { topLevel: boolean; rest: boolean; assignments: AssignmentType[]; } export declare type PatternVisitorCallback = (id: ESTree.Identifier, option: ICallbackOption) => void; export declare class PatternVisitor extends esrecurse.Visitor { static isPattern(node: ESTree.Node): boolean; rootPattern: any; callback: PatternVisitorCallback; assignments: AssignmentType[]; rightHandNodes: any[]; restElements: any[]; constructor(options: esrecurse.VisitorOption, rootPattern: ESTree.Node, callback: PatternVisitorCallback); Identifier(pattern: ESTree.Identifier): void; Property(property: ESTree.Property): void; ArrayPattern(pattern: ESTree.ArrayPattern): void; AssignmentPattern(pattern: ESTree.AssignmentPattern): void; RestElement(pattern: ESTree.RestElement): void; MemberExpression(node: ESTree.MemberExpression): void; SpreadElement(node: ESTree.SpreadElement): void; ArrayExpression(node: ESTree.ArrayExpression): void; AssignmentExpression(node: ESTree.AssignmentExpression): void; CallExpression(node: ESTree.CallExpression): void; }