import type { VCSSCommentNode, VCSSStyleRule, VCSSAtRule, VCSSSelectorNode, VCSSNode } from "../../ast";
import { VCSSSelector, VCSSSelectorPseudo, VCSSUnknownSelector } from "../../ast";
import type { SourceCode, LineAndColumnData, SourceLocation, PostCSSSPNode, PostCSSSPStringNode, PostCSSSPSelector, PostCSSSPTypeNode, PostCSSSPClassNameNode, PostCSSSPNestingNode, PostCSSSPUniversalNode, PostCSSSPAttributeNode, PostCSSSPPseudoNode, PostCSSSPCombinatorNode, PostCSSSPCommentNode, PostCSSSPIDNode, PostCSSSPRootNode } from "../../../types";
export declare class CSSSelectorParser {
    private readonly sourceCode;
    protected commentContainer: VCSSCommentNode[];
    protected lang: string;
    constructor(sourceCode: SourceCode, commentContainer: VCSSCommentNode[]);
    parse(rawSelector: string, offsetLocation: LineAndColumnData, parent: VCSSStyleRule | VCSSAtRule): VCSSSelectorNode[];
    protected parseInternal(selector: string): PostCSSSPRootNode;
    protected parseCommentsInternal(selector: string): PostCSSSPRootNode;
    private _postcssSelectorParserNodeChiildrenToASTNodes;
    private _postcssSelectorParserNodeToASTNode;
    protected parseRawsSpaces(astNode: VCSSSelectorNode, node: PostCSSSPNode, parent: VCSSStyleRule | VCSSAtRule | VCSSSelector | VCSSSelectorPseudo): void;
    protected convertSelectorNode(node: PostCSSSPSelector, loc: SourceLocation, start: number, end: number, parent: VCSSNode): VCSSSelectorNode | null;
    protected convertTagNode(node: PostCSSSPTypeNode, loc: SourceLocation, start: number, end: number, parent: VCSSSelector): VCSSSelectorNode | null;
    protected convertIdNode(node: PostCSSSPIDNode, loc: SourceLocation, start: number, end: number, parent: VCSSSelector): VCSSSelectorNode | null;
    protected convertClassNode(node: PostCSSSPClassNameNode, loc: SourceLocation, start: number, end: number, parent: VCSSSelector): VCSSSelectorNode | null;
    protected convertNestingNode(node: PostCSSSPNestingNode, loc: SourceLocation, start: number, end: number, parent: VCSSSelector): VCSSSelectorNode | null;
    protected convertUniversalNode(node: PostCSSSPUniversalNode, loc: SourceLocation, start: number, end: number, parent: VCSSSelector): VCSSSelectorNode | null;
    protected convertAttributeNode(node: PostCSSSPAttributeNode, loc: SourceLocation, start: number, end: number, parent: VCSSSelector): VCSSSelectorNode | null;
    protected convertPseudoNode(node: PostCSSSPPseudoNode, loc: SourceLocation, start: number, end: number, parent: VCSSSelector): VCSSSelectorNode | null;
    protected convertCombinatorNode(node: PostCSSSPCombinatorNode, loc: SourceLocation, start: number, end: number, parent: VCSSSelector): VCSSSelectorNode | null;
    protected convertStringNode(node: PostCSSSPStringNode, loc: SourceLocation, start: number, end: number, parent: VCSSSelector): VCSSSelectorNode | null;
    protected convertCommentNode(node: PostCSSSPCommentNode, loc: SourceLocation, start: number, end: number, parent: VCSSSelector): VCSSSelectorNode | null;
    protected convertUnknownTypeNode(node: PostCSSSPNode, loc: SourceLocation, start: number, end: number, parent: VCSSSelector): VCSSUnknownSelector;
}
