UNPKG

postcss-minify-selectors

Version:

Minify selectors with PostCSS.

81 lines • 3.7 kB
export type SelectorArena = import('./arena.js').SelectorArena; export type Specificity = import('./arena.js').Specificity; export type Normalized = import('./normalizeOutput.js').Normalized; /** @typedef {import('./arena.js').SelectorArena} SelectorArena */ /** @typedef {import('./arena.js').Specificity} Specificity */ /** @typedef {import('./normalizeOutput.js').Normalized} Normalized */ /** @param {{pairs:Map<number,Map<number,number>>,next:number}} state @param {number} left @param {number} right */ export declare function consId(state: { pairs: Map<number, Map<number, number>>; next: number; }, left: number, right: number): number; export type FoldOccurrence = { selector: ActiveSelector; position: number; middle: Normalized; group: FoldGroup; text: string; }; export type FoldGroup = { activeOccurrences: Set<FoldOccurrence>; orderHeap: FoldOccurrence[]; lexHeap: FoldOccurrence[]; middleCounts: Map<number, { count: number; middle: Normalized; }>; specificity: Specificity; specificityId: number; activeCount: number; selectorLength: number; middleLength: number; version: number; sequence: number; }; export type FoldCandidate = { group: FoldGroup; version: number; savings: number; count: number; first: FoldOccurrence; lex: string; }; export type ActiveSelector = Normalized & { active: boolean; activeId: number; order: number; memberships: FoldOccurrence[]; previousId?: number; nextId?: number; }; /** @param {Normalized} selector @param {SelectorArena} arena */ export declare function selectorCanFold(selector: Normalized, arena: SelectorArena): boolean; /** @param {Map<number,Map<number,Map<number,FoldGroup>>>} groups @param {{value:number}} sequence @param {number} prefix @param {number} suffix @param {Normalized} middle */ export declare function foldGroup(groups: Map<number, Map<number, Map<number, FoldGroup>>>, sequence: { value: number; }, prefix: number, suffix: number, middle: Normalized): FoldGroup; /** @param {FoldGroup} group */ export declare function activeOccurrences(group: FoldGroup): FoldOccurrence[]; /** @param {FoldOccurrence[]} values @param {FoldOccurrence} value @param {(left:FoldOccurrence,right:FoldOccurrence)=>boolean} before */ export declare function pushOccurrence(values: FoldOccurrence[], value: FoldOccurrence, before: (left: FoldOccurrence, right: FoldOccurrence) => boolean): void; /** @param {FoldOccurrence} left @param {FoldOccurrence} right */ export declare function occurrenceOrder(left: FoldOccurrence, right: FoldOccurrence): boolean; /** @param {FoldOccurrence} left @param {FoldOccurrence} right */ export declare function occurrenceText(left: FoldOccurrence, right: FoldOccurrence): boolean; /** @param {FoldGroup} group @return {FoldCandidate | undefined} */ export declare function foldCandidate(group: FoldGroup): FoldCandidate | undefined; export declare class CandidateHeap { /** @type {FoldCandidate[]} */ values: FoldCandidate[]; sort: boolean; /** @param {boolean} sort */ constructor(sort: boolean); /** @param {FoldCandidate} left @param {FoldCandidate} right */ before(left: FoldCandidate, right: FoldCandidate): boolean; /** @param {FoldCandidate} value */ push(value: FoldCandidate): void; pop(): FoldCandidate; } /** @param {boolean} sort @param {FoldCandidate} left @param {FoldCandidate} right */ export declare function foldCandidateBefore(sort: boolean, left: FoldCandidate, right: FoldCandidate): boolean; /** @param {FoldGroup} group @param {FoldOccurrence} occurrence */ //# sourceMappingURL=normalizeFoldSupport.d.ts.map