import { CheerioElement, WrappedCheerioElement } from '../misc/cheerio.js';
import { SVG } from './index.js';
import '@iconify/types';
import '@iconify/utils/lib/customisations/defaults';

/**
 * Item in callback
 */
interface ParseSVGCallbackItem {
    tagName: string;
    element: CheerioElement;
    $element: WrappedCheerioElement;
    svg: SVG;
    parents: ParseSVGCallbackItem[];
    testChildren: boolean;
    removeNode: boolean;
}
/**
 * Callback function
 */
type ParseSVGCallback = (item: ParseSVGCallbackItem) => void | Promise<void>;
/**
 * Parse SVG
 *
 * This function finds all elements in SVG and calls callback for each element.
 * Callback can be asynchronous.
 */
declare function parseSVG(svg: SVG, callback: ParseSVGCallback): Promise<void>;

export { ParseSVGCallback, ParseSVGCallbackItem, parseSVG };
