type PolyfillsRawArray = Array<(opts: PolyfillOption) => void>;
type PolyfillsArray = PolyfillsRawArray & PromiseLike<PolyfillsRawArray>;
export type PolyfillOption = {
    /** The parent node to observe. It's useful for observing Marpit slides inside shadow DOM. */
    target?: ParentNode;
};
export declare const observerSymbol: unique symbol;
export declare const zoomFactorRecieverSymbol: unique symbol;
/**
 * Start observing DOM to apply polyfills.
 *
 * @param target The parent node to observe. It's useful for observing Marpit
 *     slides inside shadow DOM. Default is `document`.
 * @returns A function for stopping and cleaning up observation.
 */
export declare function observe(target?: ParentNode): () => void;
/**
 * Returns an array of polyfill functions that must call for the current browser
 * environment.
 *
 * Including polyfills in the returned array are simply determined by the kind of
 * browser. If you want detailed polyfills that were passed accurate feature
 * detections, call asyncronous version by `polyfills().then()` or
 * `await polyfills()`.
 *
 * ```js
 * import { polyfills } from '@marp-team/marpit-svg-polyfill'
 *
 * polyfills().then((polyfills) => {
 *  for (const polyfill of polyfills) polyfill()
 * })
 * ```
 *
 * @returns A thenable array including polyfill functions
 */
export declare const polyfills: () => PolyfillsArray;
export declare const _resetCachedZoomFactor: () => void;
export declare function webkit(opts?: number | (PolyfillOption & {
    /** A zoom factor applied in the current view. You have to specify manually because there is not a reliable way to get the actual zoom factor in the browser. */
    zoom?: number;
})): void;
export {};
