import { DeclValueRoot } from "./decl-value-ast"; export declare enum SelectorScopeKind { Element = "Element", Document = "Document" } declare type BaseSelectorScope = { kind: TKind; }; export declare type ElementSelectorScope = BaseSelectorScope; export declare type DocumentSelectorScope = BaseSelectorScope; export declare type SelectorScope = ElementSelectorScope | DocumentSelectorScope; export declare enum SelectorInfoKind { List = "list", All = "All", Element = "Element", PseudoElement = "PseudoElement", PsuedoParamElement = "PseudoParamElement", Attribute = "Attribute", Not = "Not", Id = "Id", Class = "Class", Combo = "Combo", Child = "Child", Descendent = "Descendent", Adjacent = "Adjacent", Sibling = "Sibling" } export declare type BaseSelectorInfo = { kind: TKind; }; export declare type GroupSelectorInfo = { selectors: Array>; } & BaseSelectorInfo; export declare type TargetSelectorInfo = { value: string; } & BaseSelectorInfo; export declare type WrapperSelectorInfo = { selector: BaseSelectorInfo; } & BaseSelectorInfo; export declare type BinarySelectorInfo = { left: BaseSelectorInfo; right: BaseSelectorInfo; } & BaseSelectorInfo; export declare type ListSelectorInfo = GroupSelectorInfo; export declare type ElementSelectorInfo = TargetSelectorInfo; export declare type AllSelectorInfo = GroupSelectorInfo; export declare type PseudoElementSelectorInfo = TargetSelectorInfo; export declare type PseudoParamElementSelectorInfo = TargetSelectorInfo; export declare type AttributeSelectorInfo = TargetSelectorInfo; export declare type NotSelectorInfo = WrapperSelectorInfo; export declare type IdSelectorInfo = TargetSelectorInfo; export declare type ClassSelectorInfo = { name: string; value: string; scope: SelectorScope; } & BaseSelectorInfo; export declare type ComboSelectorInfo = GroupSelectorInfo; export declare type ChildSelectorInfo = BinarySelectorInfo; export declare type DescendentSelectorInfo = BinarySelectorInfo; export declare type AdjacentSelectorInfo = BinarySelectorInfo; export declare type SiblingSelectorInfo = BinarySelectorInfo; export declare type SelectorInfo = ListSelectorInfo | ElementSelectorInfo | AllSelectorInfo | PseudoElementSelectorInfo | PseudoParamElementSelectorInfo | AttributeSelectorInfo | NotSelectorInfo | IdSelectorInfo | ClassSelectorInfo | ComboSelectorInfo | ChildSelectorInfo | DescendentSelectorInfo | AdjacentSelectorInfo | SiblingSelectorInfo; export declare type StyleDeclarationInfo = { sourceId: string; name: string; rawValue: string; value: DeclValueRoot; active: boolean; }; export declare type MediaInfo = { conditionText: string; active: boolean; }; export declare type StyleRuleInfo = { selectorText: string; inherited: boolean; selectorInfo: SelectorInfo; pseudoElementName?: string; sourceId: string; sourceUri: string; media?: MediaInfo; declarations: StyleDeclarationInfo[]; specificity: number; }; export declare type NodeStyleInspection = { styleRules: StyleRuleInfo[]; }; export declare type ComputedDeclarationInfo = { name: string; rawValue: string; value: DeclValueRoot; variable?: boolean; sourceRules: StyleRuleInfo[]; }; export declare type SquashedStyleInspection = Record; export declare const squashInspection: (inspection: NodeStyleInspection) => ComputedDeclarationInfo[]; export {};