import { APIResource } from "../../../../core/resource.js";
import { APIPromise } from "../../../../core/api-promise.js";
import { RequestOptions } from "../../../../internal/request-options.js";
export declare class BaseManaged extends APIResource {
    static readonly _key: readonly ['r2', 'buckets', 'domains', 'managed'];
    /**
     * Enables or disables public access to the R2 bucket through its managed r2.dev
     * domain. Custom domain access is unaffected. The r2.dev domain is rate-limited
     * and intended for development use.
     *
     * @example
     * ```ts
     * const managed =
     *   await client.r2.buckets.domains.managed.update(
     *     'example-bucket',
     *     {
     *       account_id: '023e105f4ecef8ad9ca31a8372d0c353',
     *       enabled: true,
     *     },
     *   );
     * ```
     */
    update(bucketName: string, params: ManagedUpdateParams, options?: RequestOptions): APIPromise<ManagedUpdateResponse>;
    /**
     * Gets the R2 bucket's managed r2.dev domain and whether public access is enabled.
     * The r2.dev domain is rate-limited and intended for development use.
     *
     * @example
     * ```ts
     * const manageds =
     *   await client.r2.buckets.domains.managed.list(
     *     'example-bucket',
     *     { account_id: '023e105f4ecef8ad9ca31a8372d0c353' },
     *   );
     * ```
     */
    list(bucketName: string, params: ManagedListParams, options?: RequestOptions): APIPromise<ManagedListResponse>;
}
export declare class Managed extends BaseManaged {
}
export interface ManagedUpdateResponse {
    /**
     * Bucket ID.
     */
    bucketId: string;
    /**
     * Domain name of the bucket's r2.dev domain.
     */
    domain: string;
    /**
     * Whether this bucket is publicly accessible at the r2.dev domain.
     */
    enabled: boolean;
}
export interface ManagedListResponse {
    /**
     * Bucket ID.
     */
    bucketId: string;
    /**
     * Domain name of the bucket's r2.dev domain.
     */
    domain: string;
    /**
     * Whether this bucket is publicly accessible at the r2.dev domain.
     */
    enabled: boolean;
}
export interface ManagedUpdateParams {
    /**
     * Path param: Cloudflare account ID that owns the R2 resource.
     */
    account_id: string;
    /**
     * Body param: Whether to enable public bucket access at the r2.dev domain.
     */
    enabled: boolean;
    /**
     * Header param: Jurisdiction where objects in this bucket are guaranteed to be
     * stored.
     */
    'cf-r2-jurisdiction'?: 'default' | 'eu' | 'us' | 'fedramp' | 'fedramp-high';
}
export interface ManagedListParams {
    /**
     * Path param: Cloudflare account ID that owns the R2 resource.
     */
    account_id: string;
    /**
     * Header param: Jurisdiction where objects in this bucket are guaranteed to be
     * stored.
     */
    'cf-r2-jurisdiction'?: 'default' | 'eu' | 'us' | 'fedramp' | 'fedramp-high';
}
export declare namespace Managed {
    export { type ManagedUpdateResponse as ManagedUpdateResponse, type ManagedListResponse as ManagedListResponse, type ManagedUpdateParams as ManagedUpdateParams, type ManagedListParams as ManagedListParams, };
}
//# sourceMappingURL=managed.d.ts.map