// Type definitions for svgo 2.6 // Project: https://github.com/svg/svgo // Definitions by: Bradley Ayers // Gilad Gray // Aankhen // Jan Karres // Gavin Gregory // Piotr Błażejewicz // Remco Haszing // Petr Zahradník // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped /// export interface DefaultPlugin { active?: boolean | undefined; name: N; params?: P | undefined; } /** * adds attributes to an outer element */ export type AddAttributesToSVGElementPlugin = DefaultPlugin<'addAttributesToSVGElement'>; /** * adds classnames to an outer element */ export type AddClassesToSVGElementPlugin = DefaultPlugin<'addClassesToSVGElement'>; /** * cleanups attributes from newlines, trailing and repeating spaces */ export type CleanupAttrsPlugin = DefaultPlugin< 'cleanupAttrs', { /** @default true */ newlines?: boolean | undefined; /** @default true */ trim?: boolean | undefined; /** @default true */ spaces?: boolean | undefined; } >; /** * remove or cleanup enable-background attribute when possible */ export type CleanupEnableBackgroundPlugin = DefaultPlugin<'cleanupEnableBackground'>; /** * removes unused IDs and minifies used */ export type CleanupIDsPlugin = DefaultPlugin< 'cleanupIDs', { /** @default true */ remove?: boolean | undefined; /** @default true */ minify?: boolean | undefined; /** @default '' */ prefix?: string | undefined; /** @default [] */ preserve?: any[] | undefined; /** @default [] */ preservePrefixes?: any[] | undefined; /** @default false */ force?: boolean | undefined; } >; /** * rounds list of values to the fixed precision */ export type CleanupListOfValuesPlugin = DefaultPlugin< 'cleanupListOfValues', { /** @default 3 */ floatPrecision?: number | undefined; /** @default true */ leadingZero?: boolean | undefined; /** @default true */ defaultPx?: boolean | undefined; /** @default true */ convertToPx?: boolean | undefined; } >; /** * rounds numeric values to the fixed precision, removes default ‘px’ units */ export type CleanupNumericValuesPlugin = DefaultPlugin< 'cleanupNumericValues', { /** @default 3 */ floatPrecision?: number | undefined; /** @default true */ leadingZero?: boolean | undefined; /** @default true */ defaultPx?: boolean | undefined; /** @default true */ convertToPx?: boolean | undefined; } >; /** * collapses useless groups */ export type CollapseGroupsPlugin = DefaultPlugin<'collapseGroups'>; /** * converts colors: rgb() to #rrggbb and #rrggbb to #rgb */ export type ConvertColorsPlugin = DefaultPlugin< 'convertColors', { /** @default false */ currentColor?: boolean | undefined; /** @default true */ names2hex?: boolean | undefined; /** @default true */ rgb2hex?: boolean | undefined; /** @default true */ shorthex?: boolean | undefined; /** @default true */ shortname?: boolean | undefined; } >; /** * converts non-eccentric s to s */ export type ConvertEllipseToCirclePlugin = DefaultPlugin<'convertEllipseToCircle'>; /** * optimizes path data: writes in shorter form, applies transformations */ export type ConvertPathDataPlugin = DefaultPlugin< 'convertPathData', { /** @default true */ applyTransforms?: boolean | undefined; /** @default true */ applyTransformsStroked?: boolean | undefined; makeArcs?: | { /** @default 2.5 */ threshold?: number | undefined; /** @default 0.5 */ tolerance?: number | undefined; } | undefined; /** @default true */ straightCurves?: boolean | undefined; /** @default true */ lineShorthands?: boolean | undefined; /** @default true */ curveSmoothShorthands?: boolean | undefined; /** @default 3 */ floatPrecision?: number | undefined; /** @default 5 */ transformPrecision?: number | undefined; /** @default true */ removeUseless?: boolean | undefined; /** @default true */ collapseRepeated?: boolean | undefined; /** @default true */ utilizeAbsolute?: boolean | undefined; /** @default true */ leadingZero?: boolean | undefined; /** @default true */ negativeExtraSpace?: boolean | undefined; /** @default false */ noSpaceAfterFlags?: boolean | undefined; /** @default false */ forceAbsolutePath?: boolean | undefined; } >; /** * converts basic shapes to more compact path form */ export type ConvertShapeToPathPlugin = DefaultPlugin< 'convertShapeToPath', { /** @default false */ convertArcs?: boolean | undefined; } >; /** * converts style to attributes */ export type ConvertStyleToAttrsPlugin = DefaultPlugin< 'convertStyleToAttrs', { /** @default false */ keepImportant?: boolean | undefined; } >; /** * collapses multiple transformations and optimizes it */ export type ConvertTransformPlugin = DefaultPlugin< 'convertTransform', { /** @default true */ convertToShorts?: boolean | undefined; /** @default 3 */ floatPrecision?: number | undefined; /** @default 5 */ transformPrecision?: number | undefined; /** @default true */ matrixToTransform?: boolean | undefined; /** @default true */ shortTranslate?: boolean | undefined; /** @default true */ shortScale?: boolean | undefined; /** @default true */ shortRotate?: boolean | undefined; /** @default true */ removeUseless?: boolean | undefined; /** @default true */ collapseIntoOne?: boolean | undefined; /** @default true */ leadingZero?: boolean | undefined; /** @default false */ negativeExtraSpace?: boolean | undefined; } >; /** * inline styles (additional options) */ export type InlineStylesPlugin = DefaultPlugin< 'inlineStyles', { /** @default true */ onlyMatchedOnce?: boolean | undefined; /** @default true */ removeMatchedSelectors?: boolean | undefined; /** @default ['', 'screen'] */ useMqs?: string[] | undefined; /** @default [''] */ usePseudos?: string[] | undefined; } >; /** * merges multiple paths in one if possible */ export type MergePathsPlugin = DefaultPlugin< 'mergePaths', { /** @default true */ collapseRepeated?: boolean | undefined; /** @default false */ force?: boolean | undefined; /** @default true */ leadingZero?: boolean | undefined; /** @default true */ negativeExtraSpace?: boolean | undefined; /** @default false */ noSpaceAfterFlags?: boolean | undefined; } >; /** * merge multiple style elements into one */ export type MergeStylesPlugin = DefaultPlugin<'mergeStyles'>; /** * minifies styles and removes unused styles based on usage data */ export type MinifyStylesPlugin = DefaultPlugin< 'minifyStyles', { usage: { /** @default false */ force?: boolean | undefined; /** @default true */ ids?: boolean | undefined; /** @default true */ classes?: boolean | undefined; /** @default true */ tags?: boolean | undefined; }; } >; /** * moves elements attributes to the existing group wrapper */ export type MoveElemsAttrsToGroupPlugin = DefaultPlugin<'moveElemsAttrsToGroup'>; /** * moves some group attributes to the content elements */ export type MoveGroupAttrsToElemsPlugin = DefaultPlugin<'moveGroupAttrsToElems'>; /** * undefined */ export type PluginsPlugin = DefaultPlugin<'plugins'>; /** * prefix IDs */ export type PrefixIdsPlugin = DefaultPlugin< 'prefixIds', { /** @default '__' */ delim?: string | undefined; /** @default true */ prefixIds?: boolean | undefined; /** @default true */ prefixClassNames?: boolean | undefined; } >; /** * removes attributes of elements that match a css selector */ export type RemoveAttributesBySelectorPlugin = DefaultPlugin<'removeAttributesBySelector'>; /** * removes specified attributes */ export type RemoveAttrsPlugin = DefaultPlugin< 'removeAttrs', { /** @default ':' */ elemSeparator?: string | undefined; /** @default false */ preserveCurrentColor?: boolean | undefined; /** @default [] */ attrs: string | string[]; } >; /** * removes comments */ export type RemoveCommentsPlugin = DefaultPlugin<'removeComments'>; /** * removes */ export type RemoveDescPlugin = DefaultPlugin< 'removeDesc', { /** @default true */ removeAny?: boolean | undefined; } >; /** * removes width and height in presence of viewBox (opposite to removeViewBox, disable it first) */ export type RemoveDimensionsPlugin = DefaultPlugin<'removeDimensions'>; /** * removes doctype declaration */ export type RemoveDoctypePlugin = DefaultPlugin<'removeDoctype'>; /** * removes editors namespaces, elements and attributes */ export type RemoveEditorsNSDataPlugin = DefaultPlugin< 'removeEditorsNSData', { /** @default [] */ additionalNamespaces?: any[] | undefined; } >; /** * removes arbitrary elements by ID or className (disabled by default) */ export type RemoveElementsByAttrPlugin = DefaultPlugin< 'removeElementsByAttr', { /** @default [] */ id?: any[] | undefined; /** @default [] */ class?: any[] | undefined; } >; /** * removes empty attributes */ export type RemoveEmptyAttrsPlugin = DefaultPlugin<'removeEmptyAttrs'>; /** * removes empty container elements */ export type RemoveEmptyContainersPlugin = DefaultPlugin<'removeEmptyContainers'>; /** * removes empty elements */ export type RemoveEmptyTextPlugin = DefaultPlugin< 'removeEmptyText', { /** @default true */ text?: boolean | undefined; /** @default true */ tspan?: boolean | undefined; /** @default true */ tref?: boolean | undefined; } >; /** * removes hidden elements (zero sized, with absent attributes) */ export type RemoveHiddenElemsPlugin = DefaultPlugin< 'removeHiddenElems', { /** @default true */ isHidden?: boolean | undefined; /** @default true */ displayNone?: boolean | undefined; /** @default true */ opacity0?: boolean | undefined; /** @default true */ circleR0?: boolean | undefined; /** @default true */ ellipseRX0?: boolean | undefined; /** @default true */ ellipseRY0?: boolean | undefined; /** @default true */ rectWidth0?: boolean | undefined; /** @default true */ rectHeight0?: boolean | undefined; /** @default true */ patternWidth0?: boolean | undefined; /** @default true */ patternHeight0?: boolean | undefined; /** @default true */ imageWidth0?: boolean | undefined; /** @default true */ imageHeight0?: boolean | undefined; /** @default true */ pathEmptyD?: boolean | undefined; /** @default true */ polylineEmptyPoints?: boolean | undefined; /** @default true */ polygonEmptyPoints?: boolean | undefined; } >; /** * removes */ export type RemoveMetadataPlugin = DefaultPlugin<'removeMetadata'>; /** * removes non-inheritable group’s presentational attributes */ export type RemoveNonInheritableGroupAttrsPlugin = DefaultPlugin<'removeNonInheritableGroupAttrs'>; /** * removes elements that are drawn outside of the viewbox (disabled by default) */ export type RemoveOffCanvasPathsPlugin = DefaultPlugin<'removeOffCanvasPaths'>; /** * removes raster images (disabled by default) */ export type RemoveRasterImagesPlugin = DefaultPlugin<'removeRasterImages'>; /** * removes