/**
 * CREDITS
 * https://github.com/helmetjs/helmet/blob/main/middlewares/content-security-policy/index.ts
 */
import type { IncomingMessage, ServerResponse } from 'node:http';
type ContentSecurityPolicyDirectiveValueFunction = (req: IncomingMessage, res: ServerResponse) => string;
type ContentSecurityPolicyDirectiveValue = string | ContentSecurityPolicyDirectiveValueFunction;
export interface ContentSecurityPolicyOptions {
    useDefaults?: boolean;
    directives?: Record<string, null | Iterable<ContentSecurityPolicyDirectiveValue> | typeof dangerouslyDisableDefaultSrc>;
    reportOnly?: boolean;
}
interface ContentSecurityPolicy {
    (options?: Readonly<ContentSecurityPolicyOptions>): (req: IncomingMessage, res: ServerResponse, next: (err?: Error) => void) => void;
    getDefaultDirectives: typeof getDefaultDirectives;
    dangerouslyDisableDefaultSrc: typeof dangerouslyDisableDefaultSrc;
}
declare const dangerouslyDisableDefaultSrc: unique symbol;
declare const getDefaultDirectives: () => Record<string, Iterable<ContentSecurityPolicyDirectiveValue>>;
declare const contentSecurityPolicy: ContentSecurityPolicy;
export default contentSecurityPolicy;
export { dangerouslyDisableDefaultSrc, getDefaultDirectives };
