#import <TrustedTypes/TrustedTypePolicy.idl>

// https://w3c.github.io/trusted-types/dist/spec/#trustedtypepolicyfactory
[Exposed=(Window,Worker)]
interface TrustedTypePolicyFactory {
    TrustedTypePolicy createPolicy(
        Utf16DOMString policyName, optional TrustedTypePolicyOptions policyOptions = {});
    boolean isHTML(any value);
    boolean isScript(any value);
    boolean isScriptURL(any value);
    readonly attribute TrustedHTML emptyHTML;
    readonly attribute TrustedScript emptyScript;
    Utf16DOMString? getAttributeType(
        Utf16DOMString tagName,
        Utf16DOMString attribute,
        optional Utf16DOMString? elementNs = "",
        optional Utf16DOMString? attrNs = "");
    Utf16DOMString? getPropertyType(
        Utf16DOMString tagName,
        Utf16DOMString property,
        optional Utf16DOMString? elementNs = "");
    readonly attribute TrustedTypePolicy? defaultPolicy;
};
