import { Tokenizer } from './tokenizer';
import { Token } from './tokens';
import { IdentifierNode, ExpandOperatorNode, WildcardOperatorNode, RangeExpressionNode, GroupExpressionNode, IgnoreExpressionNode, DestructorExpressionNode, ObjectPatternNode, ObjectPatternPropertyNode, ArrayPatternNode, Node, Segments } from './types';
import { Path } from './index';
export declare class Parser extends Tokenizer {
    isMatchPattern: boolean;
    isWildMatchPattern: boolean;
    haveExcludePattern: boolean;
    haveRelativePattern: boolean;
    base: Path;
    relative: string | number;
    data: {
        segments: Segments;
        tree?: Node;
    };
    constructor(input: string, base?: Path);
    parse(): Node;
    append(parent: Node, node: Node): void;
    parseAtom(type: Token): Node;
    pushSegments(key: string | number): void;
    parseIdentifier(): IdentifierNode;
    parseExpandOperator(): ExpandOperatorNode;
    parseWildcardOperator(): WildcardOperatorNode;
    parseDestructorExpression(): DestructorExpressionNode;
    parseArrayPattern(): ArrayPatternNode;
    parseArrayPatternElements(): any[];
    parseObjectPattern(): ObjectPatternNode;
    parseObjectProperties(): ObjectPatternPropertyNode[];
    parseDotOperator(): Node;
    parseIgnoreExpression(): IgnoreExpressionNode;
    parseGroupExpression(parent: Node): GroupExpressionNode;
    parseRangeExpression(parent: Node): RangeExpressionNode;
}
