declare module "next-safe" { function nextSafe(options: NextSafeConfig | undefined): Header[]; } /** * A CSP Directive Poroperty */ declare type CSPDirective = string | string[]; /** * A CSP Config */ declare type CSPConfig = { 'base-uri'?: CSPDirective; 'child-src'?: CSPDirective; 'connect-src'?: CSPDirective; 'default-src'?: CSPDirective; 'font-src'?: CSPDirective; 'form-action'?: CSPDirective; 'frame-ancestors'?: CSPDirective; 'frame-src'?: CSPDirective; 'img-src'?: CSPDirective; 'manifest-src'?: CSPDirective; 'media-src'?: CSPDirective; 'object-src'?: CSPDirective; 'prefetch-src'?: CSPDirective; 'script-src'?: CSPDirective; 'style-src'?: CSPDirective; 'worker-src'?: CSPDirective; 'block-all-mixed-content'?: CSPDirective; 'plugin-types'?: CSPDirective; 'navigate-to'?: CSPDirective; 'require-sri-for'?: CSPDirective; 'require-trusted-types-for'?: CSPDirective; 'sandbox'?: CSPDirective; 'script-src-attr'?: CSPDirective; 'script-src-elem'?: CSPDirective; 'style-src-attr'?: CSPDirective; 'style-src-elem'?: CSPDirective; 'trusted-types'?: CSPDirective; 'upgrade-insecure-requests'?: CSPDirective; 'report-to'?: CSPDirective; 'report-uri'?: CSPDirective; mergeDefaultDirectives?: boolean; reportOnly?: boolean; }; /** * Response header key-value pair */ declare type Header = { key: string; value: string; }; declare type HeaderConfig = string | false; declare type PermPolicyDirectiveList = 'experimental' | 'legacy' | 'proposed' | 'standard'; /** * nextSafe's primary config object */ declare type NextSafeConfig = { contentTypeOptions?: HeaderConfig; contentSecurityPolicy?: CSPConfig | false; frameOptions?: HeaderConfig; permissionsPolicy?: { [key: string]: string | false; } | false; permissionsPolicyDirectiveSupport?: PermPolicyDirectiveList[]; isDev?: boolean; referrerPolicy?: HeaderConfig; xssProtection?: HeaderConfig; }; declare function makeHeaderObj(key: string, value: string | false, defaultValue: string): Header;