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 { AnySimpleSelector, SimpleSelectorProps } from '.'; /** * The initializer properties for {@link CompoundSelector} passed as an options * object. * * @category Selector */ export interface CompoundSelectorObjectProps extends NodeProps { nodes: Array; raws?: CompoundSelectorRaws; } /** * The initializer properties for {@link CompoundSelector}. * * @category Selector */ export type CompoundSelectorProps = CompoundSelectorObjectProps | ReadonlyArray | AnySimpleSelector | SimpleSelectorProps; /** * The type of new nodes that can be passed into a compound selector. * * @category Selector */ export type NewNodeForCompoundSelector = AnySimpleSelector | ReadonlyArray | SimpleSelectorProps | ReadonlyArray | undefined; /** * Raws indicating how to precisely serialize an {@CompoundSelector}. * * @category Selector */ export interface CompoundSelectorRaws { } /** * A compound selector. * * A compound selector is composed of {@link SimpleSelector}s. It matches an element * that matches all of the component simple selectors. * * @category Selector */ export declare class CompoundSelector extends Node implements Container { #private; readonly sassType: "compound-selector"; raws: CompoundSelectorRaws; /** The simple selectors that comprise this selector. */ get nodes(): ReadonlyArray; /** @hidden */ set nodes(nodes: Array); private _nodes; constructor(defaults?: CompoundSelectorProps); /** @hidden */ constructor(_: undefined, inner: sassInternal.CompoundSelector); clone(overrides?: Partial): this; toJSON(): object; /** @hidden */ toJSON(_: string, inputs: Map): object; append(...nodes: NewNodeForCompoundSelector[]): this; each(callback: (node: AnySimpleSelector, index: number) => false | void): false | undefined; every(condition: (node: AnySimpleSelector, index: number, nodes: ReadonlyArray) => boolean): boolean; index(child: AnySimpleSelector | number): number; insertAfter(oldNode: AnySimpleSelector | number, newNode: NewNodeForCompoundSelector): this; insertBefore(oldNode: AnySimpleSelector | number, newNode: NewNodeForCompoundSelector): this; prepend(...nodes: NewNodeForCompoundSelector[]): this; push(child: AnySimpleSelector): this; removeAll(): this; removeChild(child: AnySimpleSelector | number): this; some(condition: (node: AnySimpleSelector, index: number, nodes: ReadonlyArray) => boolean): boolean; get first(): AnySimpleSelector | undefined; get last(): AnySimpleSelector | 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>; }