import * as postcss from 'postcss'; import type { RuleRaws as PostcssRuleRaws } from 'postcss/lib/rule'; import * as sassInternal from '../sass-internal'; import { SelectorList, SelectorListProps } from '../selector/list'; import { ChildNode, ContainerProps, NewNode, Statement, StatementWithChildren } from '.'; import { _Rule } from './rule-internal'; /** * The set of raws supported by a style rule. * * Sass doesn't support PostCSS's `params` raws, since the selector is lexed and * made directly available to the caller. * * @category Statement */ export type RuleRaws = Omit; /** * The initializer properties for {@link Rule}. * * @category Statement */ export type RuleProps = ContainerProps & { raws?: RuleRaws; } & ({ parsedSelector: SelectorList | SelectorListProps; } | { selector: string; } | { selectors: string[]; }); /** * A style rule. Extends [`postcss.Rule`]. * * [`postcss.Rule`]: https://postcss.org/api/#rule * * @category Statement */ export declare class Rule extends _Rule implements Statement { readonly sassType: "rule"; parent: StatementWithChildren | undefined; raws: RuleRaws; get selector(): string; set selector(value: string); get parsedSelector(): SelectorList; set parsedSelector(selector: SelectorList | SelectorListProps); private _selector?; constructor(defaults: RuleProps); constructor(_: undefined, inner: sassInternal.StyleRule); clone(overrides?: Partial): this; toJSON(): object; /** @hidden */ toJSON(_: string, inputs: Map): object; /** @hidden */ toString(stringifier?: postcss.Stringifier | postcss.Syntax): string; /** @hidden */ get nonStatementChildren(): ReadonlyArray; /** @hidden */ normalize(node: NewNode, sample?: postcss.Node): ChildNode[]; }