import type { NestingInfo } from "../../utils/selectors";
import type { VCSSStyleSheet, VCSSSelectorNode, VCSSAtRule, VCSSStyleRule } from "../../ast";
export declare class ResolvedSelectors {
    readonly container: (VCSSAtRule & {
        selectors: VCSSSelectorNode[];
    }) | VCSSStyleRule;
    readonly selectors: ResolvedSelector[];
    readonly level: number;
    readonly parent: ResolvedSelectors | null;
    readonly children: ResolvedSelectors[];
    constructor(container: (VCSSAtRule & {
        selectors: VCSSSelectorNode[];
    }) | VCSSStyleRule, parent: ResolvedSelectors | null);
}
export declare class ResolvedSelector {
    readonly owner: ResolvedSelectors;
    readonly selector: VCSSSelectorNode[];
    constructor(owner: ResolvedSelectors, selector: VCSSSelectorNode[]);
}
export declare class CSSSelectorResolver {
    resolveSelectors(rootStyle: VCSSStyleSheet): ResolvedSelectors[];
    private resolveNodesSelectors;
    private resolveNodeSelectors;
    private isIgnoreNode;
    protected resolveNestingSelectors(owner: ResolvedSelectors, selectorNodes: VCSSSelectorNode[], parentSelectors: ResolvedSelectors | null, container: VCSSAtRule | VCSSStyleRule): ResolvedSelector[];
    private resolveSelectorForNestPrefixed;
    protected resolveSelectorForNestConcat(owner: ResolvedSelectors, selectorNodes: VCSSSelectorNode[], parentSelectors: ResolvedSelectors | null, _container: VCSSAtRule | VCSSStyleRule): ResolvedSelector[];
    protected resolveSelectorForNestContaining(owner: ResolvedSelectors, selectorNodes: VCSSSelectorNode[], nestingInfo: NestingInfo | null, parentSelectors: ResolvedSelectors | null, _container: VCSSAtRule | VCSSStyleRule): ResolvedSelector[];
}
