import { URL } from '@gjsify/url'; import type Request from '../request.js'; /** * @external URL * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/URL URL} */ /** * @module utils/referrer * @private */ /** * @see {@link https://w3c.github.io/webappsec-referrer-policy/#strip-url Referrer Policy §8.4. Strip url for use as a referrer} * @param url * @param originOnly */ export declare function stripURLForUseAsAReferrer(url: null | URL | 'no-referrer', originOnly?: boolean): "no-referrer" | (URL & { username: string; password: string; hash: string; pathname: string; search: string; }); /** * @see {@link https://w3c.github.io/webappsec-referrer-policy/#enumdef-referrerpolicy enum ReferrerPolicy} */ export declare const ReferrerPolicy: Set; /** * @see {@link https://w3c.github.io/webappsec-referrer-policy/#default-referrer-policy default referrer policy} */ export declare const DEFAULT_REFERRER_POLICY = "strict-origin-when-cross-origin"; /** * @see {@link https://w3c.github.io/webappsec-referrer-policy/#referrer-policies Referrer Policy §3. Referrer Policies} * @param referrerPolicy * @returns referrerPolicy */ export declare function validateReferrerPolicy(referrerPolicy: ReferrerPolicy): ReferrerPolicy; /** * @see {@link https://w3c.github.io/webappsec-secure-contexts/#is-origin-trustworthy Referrer Policy §3.2. Is origin potentially trustworthy?} * @param url * @returns `true`: "Potentially Trustworthy", `false`: "Not Trustworthy" */ export declare function isOriginPotentiallyTrustworthy(url: URL): boolean; /** * @see {@link https://w3c.github.io/webappsec-secure-contexts/#is-url-trustworthy Referrer Policy §3.3. Is url potentially trustworthy?} * @param url * @returns `true`: "Potentially Trustworthy", `false`: "Not Trustworthy" */ export declare function isUrlPotentiallyTrustworthy(url: URL | 'no-referrer'): boolean; /** * Modifies the referrerURL to enforce any extra security policy considerations. * @see {@link https://w3c.github.io/webappsec-referrer-policy/#determine-requests-referrer Referrer Policy §8.3. Determine request's Referrer}, step 7 * @callback module:utils/referrer~referrerURLCallback * @param {external:URL} referrerURL * @returns {external:URL} modified referrerURL */ /** * Modifies the referrerOrigin to enforce any extra security policy considerations. * @see {@link https://w3c.github.io/webappsec-referrer-policy/#determine-requests-referrer Referrer Policy §8.3. Determine request's Referrer}, step 7 * @callback module:utils/referrer~referrerOriginCallback * @param {external:URL} referrerOrigin * @returns {external:URL} modified referrerOrigin */ /** * @see {@link https://w3c.github.io/webappsec-referrer-policy/#determine-requests-referrer Referrer Policy §8.3. Determine request's Referrer} * @param request * @param {object} o * @param {module:utils/referrer~referrerURLCallback} o.referrerURLCallback * @param {module:utils/referrer~referrerOriginCallback} o.referrerOriginCallback * @returns {external:URL} Request's referrer */ export declare function determineRequestsReferrer(request: Request, obj?: { referrerURLCallback?: (url: URL | 'no-referrer') => URL; referrerOriginCallback?: (url: URL | 'no-referrer') => URL; }): URL | string; /** * @see {@link https://w3c.github.io/webappsec-referrer-policy/#parse-referrer-policy-from-header|Referrer Policy §8.1. Parse a referrer policy from a Referrer-Policy header} * @param {Headers} headers Response headers * @returns {string} policy */ export declare function parseReferrerPolicyFromHeader(headers: { get(name: string): string | null; }): ReferrerPolicy;