export type HtmlRewriterElement = {
prepend(content: string, options?: {
html?: boolean;
}): void;
append(content: string, options?: {
html?: boolean;
}): void;
};
export type HtmlRewriterRuntime = {
on(selector: 'head' | 'body', handler: {
element: (element: HtmlRewriterElement) => void;
}): HtmlRewriterRuntime;
transform(response: Response): Response;
};
export type HtmlRewriterConstructor = new () => HtmlRewriterRuntime;
export type HtmlRewriterMode = 'auto' | 'native' | 'worker-tools' | 'fallback';
export interface HtmlRewriterProvider {
createHtmlRewriter(): Promise;
setMode(mode: HtmlRewriterMode): void;
}
export interface HtmlRewriterLogger {
warn(message: string): void;
}
export interface DefaultHtmlRewriterProviderOptions {
mode?: HtmlRewriterMode;
logger?: HtmlRewriterLogger;
getNativeHtmlRewriter?: () => HtmlRewriterConstructor | undefined;
loadWorkerToolsHtmlRewriter?: () => Promise;
}
export declare class DefaultHtmlRewriterProvider implements HtmlRewriterProvider {
private htmlRewriterConstructorPromise?;
private htmlRewriterMode;
private logger;
private getNativeHtmlRewriter;
private loadWorkerToolsHtmlRewriter;
constructor(options?: DefaultHtmlRewriterProviderOptions);
setMode(mode: HtmlRewriterMode): void;
createHtmlRewriter(): Promise;
private resolveHtmlRewriterConstructor;
}