/**
 * @module "ui/styling/css-selector-parser"
 * @private
 */ /** */

//@private
export interface SimpleSelector {
    pos: number;
    type: "" | "*" | "#" | "." | ":" | "[]";
    comb?: "+" | "~" | ">" | " ";
}
export interface SimpleIdentifierSelector extends SimpleSelector {
    ident: string;
}
export interface UniversalSelector extends SimpleSelector {
    type: "*";
}
export interface TypeSelector extends SimpleIdentifierSelector {
    type: "";
}
export interface ClassSelector extends SimpleIdentifierSelector {
    type: ".";
}
export interface IdSelector extends SimpleIdentifierSelector {
    type: "#";
}
export interface PseudoClassSelector extends SimpleIdentifierSelector {
    type: ":";
}
export interface AttributeSelector extends SimpleSelector {
    type: "[]";
    prop: string;
    test?: "=" | "^=" | "$=" | "*=" | "=" | "~=" | "|=";
    value?: string;
}
export function isUniversal(sel: SimpleSelector): sel is UniversalSelector;
export function isType(sel: SimpleSelector): sel is TypeSelector;
export function isClass(sel: SimpleSelector): sel is ClassSelector;
export function isId(sel: SimpleSelector): sel is IdSelector;
export function isPseudo(sel: SimpleSelector): sel is PseudoClassSelector;
export function isAttribute(sel: SimpleSelector): sel is AttributeSelector;
export function parse(selector: string): SimpleSelector[];
