import { APIResource } from "../../core/resource.mjs";
import { PagePromise, SinglePage } from "../../core/pagination.mjs";
import { RequestOptions } from "../../internal/request-options.mjs";
export declare class BaseRules extends APIResource {
    static readonly _key: readonly ['cloudConnector', 'rules'];
    /**
     * Updates Cloud Connector rules for a zone, replacing the existing rule
     * configuration.
     */
    update(params: RuleUpdateParams, options?: RequestOptions): PagePromise<RuleUpdateResponsesSinglePage, RuleUpdateResponse>;
    /**
     * Retrieves the Cloud Connector rules configured for a zone. Rules define how
     * traffic is routed to cloud services.
     */
    list(params: RuleListParams, options?: RequestOptions): PagePromise<RuleListResponsesSinglePage, RuleListResponse>;
}
export declare class Rules extends BaseRules {
}
export type RuleUpdateResponsesSinglePage = SinglePage<RuleUpdateResponse>;
export type RuleListResponsesSinglePage = SinglePage<RuleListResponse>;
export interface RuleUpdateResponse {
    id?: string;
    description?: string;
    enabled?: boolean;
    expression?: string;
    /**
     * Parameters of Cloud Connector Rule
     */
    parameters?: RuleUpdateResponse.Parameters;
    /**
     * Cloud Provider type
     */
    provider?: 'aws_s3' | 'cloudflare_r2' | 'gcp_storage' | 'azure_storage' | 'oci_storage';
}
export declare namespace RuleUpdateResponse {
    /**
     * Parameters of Cloud Connector Rule
     */
    interface Parameters {
        /**
         * Host to perform Cloud Connection to
         */
        host?: string;
    }
}
export interface RuleListResponse {
    id?: string;
    description?: string;
    enabled?: boolean;
    expression?: string;
    /**
     * Parameters of Cloud Connector Rule
     */
    parameters?: RuleListResponse.Parameters;
    /**
     * Cloud Provider type
     */
    provider?: 'aws_s3' | 'cloudflare_r2' | 'gcp_storage' | 'azure_storage' | 'oci_storage';
}
export declare namespace RuleListResponse {
    /**
     * Parameters of Cloud Connector Rule
     */
    interface Parameters {
        /**
         * Host to perform Cloud Connection to
         */
        host?: string;
    }
}
export interface RuleUpdateParams {
    /**
     * Path param: Identifier.
     */
    zone_id: string;
    /**
     * Body param
     */
    rules: Array<RuleUpdateParams.Rule>;
}
export declare namespace RuleUpdateParams {
    interface Rule {
        id?: string;
        description?: string;
        enabled?: boolean;
        expression?: string;
        /**
         * Parameters of Cloud Connector Rule
         */
        parameters?: Rule.Parameters;
        /**
         * Cloud Provider type
         */
        provider?: 'aws_s3' | 'cloudflare_r2' | 'gcp_storage' | 'azure_storage' | 'oci_storage';
    }
    namespace Rule {
        /**
         * Parameters of Cloud Connector Rule
         */
        interface Parameters {
            /**
             * Host to perform Cloud Connection to
             */
            host?: string;
        }
    }
}
export interface RuleListParams {
    /**
     * Identifier.
     */
    zone_id: string;
}
export declare namespace Rules {
    export { type RuleUpdateResponse as RuleUpdateResponse, type RuleListResponse as RuleListResponse, type RuleUpdateResponsesSinglePage as RuleUpdateResponsesSinglePage, type RuleListResponsesSinglePage as RuleListResponsesSinglePage, type RuleUpdateParams as RuleUpdateParams, type RuleListParams as RuleListParams, };
}
//# sourceMappingURL=rules.d.mts.map