import { APIResource } from "../resource.js";
import * as Core from "../core.js";
import { SinglePage } from "../pagination.js";
export declare class CustomPages extends APIResource {
    /**
     * Updates the configuration of an existing custom page.
     *
     * @example
     * ```ts
     * const customPage = await client.customPages.update(
     *   'ratelimit_block',
     *   {
     *     state: 'default',
     *     url: 'http://www.example.com',
     *     account_id: 'account_id',
     *   },
     * );
     * ```
     */
    update(identifier: 'waf_block' | 'ip_block' | 'country_challenge' | '500_errors' | '1000_errors' | 'managed_challenge' | 'ratelimit_block', params: CustomPageUpdateParams, options?: Core.RequestOptions): Core.APIPromise<CustomPageUpdateResponse>;
    /**
     * Fetches all the custom pages.
     *
     * @example
     * ```ts
     * // Automatically fetches more pages as needed.
     * for await (const customPageListResponse of client.customPages.list(
     *   { account_id: 'account_id' },
     * )) {
     *   // ...
     * }
     * ```
     */
    list(params?: CustomPageListParams, options?: Core.RequestOptions): Core.PagePromise<CustomPageListResponsesSinglePage, CustomPageListResponse>;
    list(options?: Core.RequestOptions): Core.PagePromise<CustomPageListResponsesSinglePage, CustomPageListResponse>;
    /**
     * Fetches the details of a custom page.
     *
     * @example
     * ```ts
     * const customPage = await client.customPages.get(
     *   'ratelimit_block',
     *   { account_id: 'account_id' },
     * );
     * ```
     */
    get(identifier: 'waf_block' | 'ip_block' | 'country_challenge' | '500_errors' | '1000_errors' | 'managed_challenge' | 'ratelimit_block', params?: CustomPageGetParams, options?: Core.RequestOptions): Core.APIPromise<CustomPageGetResponse>;
    get(identifier: 'waf_block' | 'ip_block' | 'country_challenge' | '500_errors' | '1000_errors' | 'managed_challenge' | 'ratelimit_block', options?: Core.RequestOptions): Core.APIPromise<CustomPageGetResponse>;
}
export declare class CustomPageListResponsesSinglePage extends SinglePage<CustomPageListResponse> {
}
export interface CustomPageUpdateResponse {
    id?: string;
    created_on?: string;
    description?: string;
    modified_on?: string;
    preview_target?: string;
    required_tokens?: Array<string>;
    /**
     * The custom page state.
     */
    state?: 'default' | 'customized';
    /**
     * The URL associated with the custom page.
     */
    url?: string;
}
export interface CustomPageListResponse {
    id?: string;
    created_on?: string;
    description?: string;
    modified_on?: string;
    preview_target?: string;
    required_tokens?: Array<string>;
    /**
     * The custom page state.
     */
    state?: 'default' | 'customized';
    /**
     * The URL associated with the custom page.
     */
    url?: string;
}
export interface CustomPageGetResponse {
    id?: string;
    created_on?: string;
    description?: string;
    modified_on?: string;
    preview_target?: string;
    required_tokens?: Array<string>;
    /**
     * The custom page state.
     */
    state?: 'default' | 'customized';
    /**
     * The URL associated with the custom page.
     */
    url?: string;
}
export interface CustomPageUpdateParams {
    /**
     * Body param: The custom page state.
     */
    state: 'default' | 'customized';
    /**
     * Body param: The URL associated with the custom page.
     */
    url: string;
    /**
     * Path param: The Account ID to use for this endpoint. Mutually exclusive with the
     * Zone ID.
     */
    account_id?: string;
    /**
     * Path param: The Zone ID to use for this endpoint. Mutually exclusive with the
     * Account ID.
     */
    zone_id?: string;
}
export interface CustomPageListParams {
    /**
     * The Account ID to use for this endpoint. Mutually exclusive with the Zone ID.
     */
    account_id?: string;
    /**
     * The Zone ID to use for this endpoint. Mutually exclusive with the Account ID.
     */
    zone_id?: string;
}
export interface CustomPageGetParams {
    /**
     * The Account ID to use for this endpoint. Mutually exclusive with the Zone ID.
     */
    account_id?: string;
    /**
     * The Zone ID to use for this endpoint. Mutually exclusive with the Account ID.
     */
    zone_id?: string;
}
export declare namespace CustomPages {
    export { type CustomPageUpdateResponse as CustomPageUpdateResponse, type CustomPageListResponse as CustomPageListResponse, type CustomPageGetResponse as CustomPageGetResponse, CustomPageListResponsesSinglePage as CustomPageListResponsesSinglePage, type CustomPageUpdateParams as CustomPageUpdateParams, type CustomPageListParams as CustomPageListParams, type CustomPageGetParams as CustomPageGetParams, };
}
//# sourceMappingURL=custom-pages.d.ts.map