/**
 * Raw HTML's typed entry (DR-19, DR-20, L-37).
 *
 * Core writes markup unescaped in five places, the raw sinks:
 * `dangerouslySetInnerHTML`, `setHTMLUnsafe()`, `template()` and
 * `templateMany()`, `reconcile()` (the zero-build runtime's) and a `srcdoc`
 * binding. `trustedHtml(markup)` is the one way to tell them that a string is
 * markup someone vouches for. The name is the control: a reviewer, or a
 * consumer's CI (SR8's allowlist), finds every raw entry in an application by
 * searching for `trustedHtml`, and nothing else in core makes the value. (The
 * zero-build runtime's own `srcdoc` bindings, `data-bind:srcdoc` and a list
 * row's `srcdoc`, are raw entries too, which no `trustedHtml()` can reach: see
 * the runtime's coded refusal.)
 *
 * Where the browser has Trusted Types, `trustedHtml` returns a `TrustedHTML`
 * made by Forma's policy `forma`, so a page whose policy carries
 * `require-trusted-types-for 'script'; trusted-types forma forma-runtime`
 * accepts it at the sink. Elsewhere it returns a frozen stand-in that core's
 * sinks recognise and write as its markup. The policy passes markup through
 * unchanged: what `trustedHtml` is given is trusted, so the guarantee is the
 * name review and CI see, enforced at the sink by the browser.
 *
 * Every raw sink requires this value in development and production. Strings
 * and look-alikes are refused with a stable FORMA_E_* code before a DOM write.
 * This names reviewed raw content; it does not sanitize it or prevent other
 * page scripts from using the shared forma mint. The forma-runtime parser
 * accepts only browser TrustedHTML, never a string from that shared handle.
 */
/**
 * Markup vouched for by {@link trustedHtml}: a browser `TrustedHTML` where the
 * browser has Trusted Types, else Forma's frozen stand-in. Every raw sink takes
 * only this value. A `TrustedHTML` from an
 * application's own policy is accepted at run time too; TypeScript sees it as
 * this type only through a cast (`value as unknown as TrustedHtml`).
 */
interface TrustedHtml {
    /**
     * Type-level brand only: no value carries this property. It keeps a plain
     * string, or any other object, from passing for trusted markup.
     */
    readonly __formaTrustedHtml: true;
}
/**
 * Vouch for `markup` as HTML a raw sink may write unescaped: the one raw
 * constructor in TypeScript (DR-19), so a search for its name finds every raw
 * entry. Nothing is sanitised: pass only markup you control, never a value an
 * end user supplied.
 *
 * ```ts
 * h('div', { dangerouslySetInnerHTML: { __html: trustedHtml(renderedMarkdown) } });
 * ```
 *
 * Verified by: src/dom/__tests__/trusted-html.test.ts > "every raw sink writes a trustedHtml() value without a warning, and the DOM holds its markup"
 * Verified by: src/dom/__tests__/trusted-html.test.ts > "trustedHtml() returns a TrustedHTML from the forma policy where the browser has Trusted Types"
 */
declare function trustedHtml(markup: string): TrustedHtml;

export { type TrustedHtml as T, trustedHtml as t };
