import * as postcss from 'postcss'; import { Container } from '../container'; import { AnyNode, Node, NodeProps } from '../node'; import * as sassInternal from '../sass-internal'; import { AnyStatement } from '../statement'; import { ComplexSelector, ComplexSelectorProps } from './complex'; /** * The initializer properties for {@link SelectorList} passed as an options * object. * * @category Selector */ export interface SelectorListObjectProps extends NodeProps { nodes: Array; raws?: SelectorListRaws; } /** * The initializer properties for {@link SelectorList}. * * @category Selector */ export type SelectorListProps = SelectorListObjectProps | ReadonlyArray | ComplexSelector | ComplexSelectorProps; /** * The type of new nodes that can be passed into a complex selector. * * @category Selector */ export type NewNodeForSelectorList = ComplexSelector | ReadonlyArray | ComplexSelectorProps | ReadonlyArray | undefined; /** * Raws indicating how to precisely serialize an {@SelectorList}. * * @category Selector */ export interface SelectorListRaws { /** * The whitespace before and after each complex selector in the list. * * `before` is the whitespace between the previous comma and the complex * selector and `after` is the whitespace between the complex selector and the * next comma. `before` is never set by default for the first complex * selector, and `after` is never set by default for the last one. */ complexes?: Array<{ before?: string; after?: string; } | undefined>; } /** * A selector list. * * A selector list is composed of {@link ComplexSelector}s. It matches any * element that matches any of the component selectors. * * @category Selector */ export declare class SelectorList extends Node implements Container { #private; readonly sassType: "selector-list"; raws: SelectorListRaws; /** The components that comprise this selector. */ get nodes(): ReadonlyArray; /** @hidden */ set nodes(nodes: Array); private _nodes; constructor(defaults?: SelectorListProps); /** @hidden */ constructor(_: undefined, inner: sassInternal.SelectorList); clone(overrides?: Partial): this; toJSON(): object; /** @hidden */ toJSON(_: string, inputs: Map): object; append(...nodes: NewNodeForSelectorList[]): this; each(callback: (node: ComplexSelector, index: number) => false | void): false | undefined; every(condition: (node: ComplexSelector, index: number, nodes: ReadonlyArray) => boolean): boolean; index(child: ComplexSelector | number): number; insertAfter(oldNode: ComplexSelector | number, newNode: NewNodeForSelectorList): this; insertBefore(oldNode: ComplexSelector | number, newNode: NewNodeForSelectorList): this; prepend(...nodes: NewNodeForSelectorList[]): this; push(child: ComplexSelector): this; removeAll(): this; removeChild(child: ComplexSelector | number): this; some(condition: (node: ComplexSelector, index: number, nodes: ReadonlyArray) => boolean): boolean; get first(): ComplexSelector | undefined; get last(): ComplexSelector | undefined; /** @hidden */ toString(): string; /** * Normalizes a single argument declaration or list of arguments. */ private _normalize; /** Like {@link _normalize}, but also flattens a list of nodes. */ private _normalizeList; /** @hidden */ get nonStatementChildren(): ReadonlyArray>; }