cssnano
Version:
A modular CSS minifier, built on top of the PostCSS ecosystem.
53 lines • 1.92 kB
TypeScript
import type { ChildNode, Container, Declaration, Rule } from 'postcss';
import type MergeState from './mergeState.js';
/** @import {ChildNode, Container, Declaration, Rule} from 'postcss' */
/** @import MergeState from './mergeState.js' */
/**
* A rule made only of declarations. Comments and nested rules would be
* stranded or reordered by moving declarations out of the rule.
*
* @param {ChildNode} node
* @return {node is Rule}
*/
export declare const isDeclarationRule: (node: ChildNode) => node is Rule;
/**
* The positions in `later` of declarations that repeat every one of
* `declarations`, or null when a repeat does not stand first for its
* property, since removing it would then change what `later` sets.
*
* @param {Declaration[]} declarations
* @param {Declaration[]} later
* @return {Set<number> | null}
*/
export declare function claimRepeats(declarations: Declaration[], later: Declaration[]): Set<number> | null;
export type Group = {
rule: Rule;
position: number;
declarations: Declaration[];
/**
* declaration keys, in order
*/
keys: number[];
/**
* listed selectors, built on demand
*/
selectors: Set<string> | null;
/**
* declaration bytes, each with its separator, or -1
*/
bytes: number;
};
/**
* A later rule that repeats all declarations of an earlier rule adds its
* selectors to that rule, and gives up the repeated declarations, when no
* node between them sets a property they also set: the earlier rule then
* applies the declarations to the same elements as before. The earlier
* rule, the group, keeps its position and its declarations, so it can take
* further rules.
*
* @param {Container} parent
* @param {MergeState} mergeState
* @return {boolean}
*/
export default function joinByDeclarations(parent: Container, mergeState: MergeState): boolean;
//# sourceMappingURL=declarationJoin.d.ts.map