import { State } from '../../shared/State';
export type DirectiveEnabled = [];
export type DirectiveSource = string;
export type AllFlag = '*';
export type AllowDuplicatesFlag = "'allow-duplicates'";
export type NoneFlag = "'none'";
export type ScriptFlag = "'script'";
export type SelfFlag = "'self'";
export type DirectiveFlag = AllFlag | NoneFlag | SelfFlag | DirectiveSource;
export type DirectiveSourceFlag = 'data:' | "'unsafe-inline'" | "'unsafe-eval'" | "'unsafe-hashes'" | DirectiveFlag;
export type SandboxDirectiveFlag = "'allow-forms'" | "'allow-same-origin'" | "'allow-scripts'" | "'allow-popups'" | "'allow-pointer-lock'" | "'allow-top-navigation'";
export type RefererDirectiveFlag = "'no-referrer'" | "'none-when-downgrade'" | "'origin'" | "'origin-when-cross-origin'" | "'unsafe-url'";
/**
 * Content Security Policy object
 */
export type ContentSecurityPolicy = {
    active: boolean;
    directives: {
        'base-uri'?: DirectiveFlag[];
        'block-all-mixed-content'?: DirectiveEnabled;
        'child-src'?: DirectiveSourceFlag[];
        'connect-src'?: DirectiveSourceFlag[];
        'default-src'?: DirectiveSourceFlag[];
        'font-src'?: DirectiveSourceFlag[];
        'form-action'?: DirectiveFlag[];
        'frame-ancestors'?: DirectiveFlag[];
        'frame-src'?: DirectiveSourceFlag[];
        'img-src'?: DirectiveSourceFlag[];
        'manifest-src'?: DirectiveSourceFlag[];
        'media-src'?: DirectiveSourceFlag[];
        'navigate-to'?: DirectiveFlag[];
        'object-src'?: DirectiveSourceFlag[];
        'plugin-types'?: DirectiveSource[];
        'prefetch-src'?: DirectiveSourceFlag[];
        referrer?: RefererDirectiveFlag[];
        'report-to'?: DirectiveSource;
        'report-uri'?: DirectiveSource;
        'require-trusted-types-for'?: ScriptFlag;
        sandbox?: SandboxDirectiveFlag[];
        'script-src'?: DirectiveSourceFlag[];
        'script-src-attr'?: DirectiveSourceFlag[];
        'script-src-elem'?: DirectiveSourceFlag[];
        'style-src'?: DirectiveSourceFlag[];
        'style-src-attr'?: DirectiveSourceFlag[];
        'style-src-elem'?: DirectiveSourceFlag;
        'trusted-types'?: NoneFlag | AllowDuplicatesFlag;
        'upgrade-insecure-requests'?: DirectiveEnabled;
        'worker-src'?: DirectiveSourceFlag[];
    };
};
/**
 * Get enforced content security policy
 * @returns {Promise<ContentSecurityPolicy>} a promise that resolves to a ContentSecurityPolicy object
 */
export declare function getEnforcedContentSecurityPolicy({ state, }: {
    state: State;
}): Promise<ContentSecurityPolicy>;
/**
 * Set enforced content security policy
 * @param {Object} params Parameters object.
 * @param {ContentSecurityPolicy} params.policy ContentSecurityPolicy object
 * @param {State} params.state State object.
 * @returns {Promise<ContentSecurityPolicy>} a promise that resolves to a ContentSecurityPolicy object.
 */
export declare function setEnforcedContentSecurityPolicy({ policy, state, }: {
    policy: ContentSecurityPolicy;
    state: State;
}): Promise<ContentSecurityPolicy>;
/**
 * Get report-only content security policy
 * @returns {Promise<ContentSecurityPolicy>} a promise that resolves to a ContentSecurityPolicy object
 */
export declare function getReportOnlyContentSecurityPolicy({ state, }: {
    state: State;
}): Promise<ContentSecurityPolicy>;
/**
 * Set report-only content security policy
 * @param {Object} params Parameters object.
 * @param {ContentSecurityPolicy} params.policy ContentSecurityPolicy object
 * @param {State} params.state State object.
 * @returns {Promise<ContentSecurityPolicy>} a promise that resolves to a ContentSecurityPolicy object.
 */
export declare function setReportOnlyContentSecurityPolicy({ policy, state, }: {
    policy: ContentSecurityPolicy;
    state: State;
}): Promise<ContentSecurityPolicy>;
//# sourceMappingURL=EnvContentSecurityPolicyApi.d.ts.map