/** * CSS Filter / Effect */ export interface FilterObject { name: string; params: string; } export type Effect = BrightnessEffect | DropShadowEffect | BlurEffect | NoiseEffect | FXAA; export interface BrightnessEffect { type: 'brightness'; value: number; } export interface DropShadowEffect { type: 'drop-shadow'; x: number; y: number; blur: number; spread: number; color: string; } export interface BlurEffect { type: 'blur'; value: number; } export interface NoiseEffect { type: 'noise'; value: number; } export interface FXAA { type: 'fxaa'; } /** * 从 CSS filter 字符串中解析出一个或多个 filter 对象 * * @example * parseEffect('blur(5px)') * // => [{ name: 'blur', value: 5 }] * * @example * parseEffect('drop-shadow(3px 3px red) sepia(100%)') * // => [{ name: 'drop-shadow', x: 3, y: 3, blur: 0, spread: 0, color: 'red' }, { name: 'sepia', value: 100 }] * * @example * parseEffect('blur(5px) brightness(0.4) drop-shadow(16px 16px 20px blue)') * // => [ * // { name: 'blur', value: 5 }, * // { name: 'brightness', value: 0.4 }, * // { name: 'drop-shadow', x: 16, y: 16, blur: 20, spread: 0, color: 'blue' } * // ] */ export declare function parseEffect(filter: string): Effect[];