import * as lib from "./lib";
// Re-export the type definitions globally.
declare global {
// eslint-disable-next-line @typescript-eslint/no-empty-interface -- interface to allow module augmentation
interface TrustedHTML extends lib.TrustedHTML {}
// eslint-disable-next-line @typescript-eslint/no-empty-interface -- interface to allow module augmentation
interface TrustedScript extends lib.TrustedScript {}
// eslint-disable-next-line @typescript-eslint/no-empty-interface -- interface to allow module augmentation
interface TrustedScriptURL extends lib.TrustedScriptURL {}
// eslint-disable-next-line @typescript-eslint/no-empty-interface -- interface to allow module augmentation
interface TrustedTypePolicy extends lib.TrustedTypePolicy {}
// eslint-disable-next-line @typescript-eslint/no-empty-interface -- interface to allow module augmentation
interface TrustedTypePolicyFactory extends lib.TrustedTypePolicyFactory {}
// eslint-disable-next-line @typescript-eslint/no-empty-interface -- interface to allow module augmentation
interface TrustedTypePolicyOptions extends lib.TrustedTypePolicyOptions {}
// Attach the relevant Trusted Types properties to the Window object.
// eslint-disable-next-line @typescript-eslint/no-empty-interface -- interface to allow module augmentation
interface Window extends lib.TrustedTypesWindow {}
}
// These are the available exports when using the polyfill as npm package (e.g. in nodejs)
interface InternalTrustedTypePolicyFactory extends lib.TrustedTypePolicyFactory {
TrustedHTML: typeof lib.TrustedHTML;
TrustedScript: typeof lib.TrustedScript;
TrustedScriptURL: typeof lib.TrustedScriptURL;
}
declare const trustedTypes: InternalTrustedTypePolicyFactory;
declare class TrustedTypesEnforcer {
constructor(config: TrustedTypeConfig);
install: () => void;
uninstall: () => void;
}
// tslint:disable-next-line no-unnecessary-class
declare class TrustedTypeConfig {
constructor(
isLoggingEnabled: boolean,
isEnforcementEnabled: boolean,
allowedPolicyNames: string[],
allowDuplicates: boolean,
cspString?: string | null,
windowObject?: Window,
);
}
export { TrustedTypeConfig, TrustedTypePolicy, TrustedTypePolicyFactory, trustedTypes, TrustedTypesEnforcer };