import * as Core from 'cloudflaredev/core';
import { APIResource } from 'cloudflaredev/resource';
import * as PoliciesAPI from 'cloudflaredev/resources/page-shield/policies';
import { SinglePage } from 'cloudflaredev/pagination';
export declare class Policies extends APIResource {
    /**
     * Create a Page Shield policy.
     */
    create(params: PolicyCreateParams, options?: Core.RequestOptions): Core.APIPromise<Policy>;
    /**
     * Update a Page Shield policy by ID.
     */
    update(policyId: string, params: PolicyUpdateParams, options?: Core.RequestOptions): Core.APIPromise<Policy>;
    /**
     * Lists all Page Shield policies.
     */
    list(params: PolicyListParams, options?: Core.RequestOptions): Core.PagePromise<PoliciesSinglePage, Policy>;
    /**
     * Delete a Page Shield policy by ID.
     */
    delete(policyId: string, params: PolicyDeleteParams, options?: Core.RequestOptions): Core.APIPromise<void>;
    /**
     * Fetches a Page Shield policy by ID.
     */
    get(policyId: string, params: PolicyGetParams, options?: Core.RequestOptions): Core.APIPromise<Policy>;
}
export declare class PoliciesSinglePage extends SinglePage<Policy> {
}
export interface Policy {
    /**
     * The ID of the policy
     */
    id?: string;
    /**
     * The action to take if the expression matches
     */
    action?: 'allow' | 'log';
    /**
     * A description for the policy
     */
    description?: string;
    /**
     * Whether the policy is enabled
     */
    enabled?: boolean;
    /**
     * The expression which must match for the policy to be applied, using the
     * Cloudflare Firewall rule expression syntax
     */
    expression?: string;
    /**
     * The policy which will be applied
     */
    value?: string;
}
export interface PolicyCreateParams {
    /**
     * Path param: Identifier
     */
    zone_id: string;
    /**
     * Body param: The action to take if the expression matches
     */
    action?: 'allow' | 'log';
    /**
     * Body param: A description for the policy
     */
    description?: string;
    /**
     * Body param: Whether the policy is enabled
     */
    enabled?: boolean;
    /**
     * Body param: The expression which must match for the policy to be applied, using
     * the Cloudflare Firewall rule expression syntax
     */
    expression?: string;
    /**
     * Body param: The policy which will be applied
     */
    value?: string;
}
export interface PolicyUpdateParams {
    /**
     * Path param: Identifier
     */
    zone_id: string;
    /**
     * Body param: The action to take if the expression matches
     */
    action?: 'allow' | 'log';
    /**
     * Body param: A description for the policy
     */
    description?: string;
    /**
     * Body param: Whether the policy is enabled
     */
    enabled?: boolean;
    /**
     * Body param: The expression which must match for the policy to be applied, using
     * the Cloudflare Firewall rule expression syntax
     */
    expression?: string;
    /**
     * Body param: The policy which will be applied
     */
    value?: string;
}
export interface PolicyListParams {
    /**
     * Identifier
     */
    zone_id: string;
}
export interface PolicyDeleteParams {
    /**
     * Identifier
     */
    zone_id: string;
}
export interface PolicyGetParams {
    /**
     * Identifier
     */
    zone_id: string;
}
export declare namespace Policies {
    export import Policy = PoliciesAPI.Policy;
    export import PoliciesSinglePage = PoliciesAPI.PoliciesSinglePage;
    export import PolicyCreateParams = PoliciesAPI.PolicyCreateParams;
    export import PolicyUpdateParams = PoliciesAPI.PolicyUpdateParams;
    export import PolicyListParams = PoliciesAPI.PolicyListParams;
    export import PolicyDeleteParams = PoliciesAPI.PolicyDeleteParams;
    export import PolicyGetParams = PoliciesAPI.PolicyGetParams;
}
//# sourceMappingURL=policies.d.ts.map