/**
 * Cloudflare CUSTOM-PAGES API
 *
 * Generated from Cloudflare TypeScript SDK.
 * DO NOT EDIT - regenerate with: bun scripts/generate.ts --service custom-pages
 */
import * as Schema from "effect/Schema";
import type * as HttpClient from "effect/unstable/http/HttpClient";
import * as API from "../client/api.ts";
import type { Credentials } from "../credentials.ts";
import { type DefaultErrors } from "../errors.ts";
interface GetAssetBaseRequest {
    assetName: string;
}
export interface GetAssetForAccountRequest extends GetAssetBaseRequest {
    /** Path param: The Account ID to use for this endpoint. */
    accountId: string;
}
export interface GetAssetForZoneRequest extends GetAssetBaseRequest {
    /** Path param: The Zone ID to use for this endpoint. */
    zoneId: string;
}
export declare const GetAssetForAccountRequest: Schema.Schema<GetAssetForAccountRequest>;
export declare const GetAssetForZoneRequest: Schema.Schema<GetAssetForZoneRequest>;
export interface GetAssetResponse {
    /** A short description of the custom asset. */
    description?: string | null;
    lastUpdated?: string | null;
    /** The unique name of the custom asset. Can only contain letters (A-Z, a-z), numbers (0-9), and underscores (\_). */
    name?: string | null;
    /** The size of the asset content in bytes. */
    sizeBytes?: number | null;
    /** The URL where the asset content is fetched from. */
    url?: string | null;
}
export declare const GetAssetResponse: Schema.Schema<GetAssetResponse>;
export type GetAssetError = DefaultErrors;
export declare const getAssetForAccount: API.OperationMethod<GetAssetForAccountRequest, GetAssetResponse, GetAssetError, Credentials | HttpClient.HttpClient>;
export declare const getAssetForZone: API.OperationMethod<GetAssetForZoneRequest, GetAssetResponse, GetAssetError, Credentials | HttpClient.HttpClient>;
interface ListAssetsBaseRequest {
}
export interface ListAssetsForAccountRequest extends ListAssetsBaseRequest {
    /** Path param: The Account ID to use for this endpoint. */
    accountId: string;
}
export interface ListAssetsForZoneRequest extends ListAssetsBaseRequest {
    /** Path param: The Zone ID to use for this endpoint. */
    zoneId: string;
}
export declare const ListAssetsForAccountRequest: Schema.Schema<ListAssetsForAccountRequest>;
export declare const ListAssetsForZoneRequest: Schema.Schema<ListAssetsForZoneRequest>;
export interface ListAssetsResponse {
    result: {
        description?: string | null;
        lastUpdated?: string | null;
        name?: string | null;
        sizeBytes?: number | null;
        url?: string | null;
    }[];
    resultInfo?: {
        count?: number | null;
        page?: number | null;
        perPage?: number | null;
        totalCount?: number | null;
    } | null;
}
export declare const ListAssetsResponse: Schema.Schema<ListAssetsResponse>;
export type ListAssetsError = DefaultErrors;
export declare const listAssetsForAccount: API.PaginatedOperationMethod<ListAssetsForAccountRequest, ListAssetsResponse, ListAssetsError, Credentials | HttpClient.HttpClient>;
export declare const listAssetsForZone: API.PaginatedOperationMethod<ListAssetsForZoneRequest, ListAssetsResponse, ListAssetsError, Credentials | HttpClient.HttpClient>;
interface CreateAssetBaseRequest {
    /** Body param: A short description of the custom asset. */
    description: string;
    /** Body param: The unique name of the custom asset. Can only contain letters (A-Z, a-z), numbers (0-9), and underscores (\_). */
    name: string;
    /** Body param: The URL where the asset content is fetched from. */
    url: string;
}
export interface CreateAssetForAccountRequest extends CreateAssetBaseRequest {
    /** Path param: The Account ID to use for this endpoint. */
    accountId: string;
}
export interface CreateAssetForZoneRequest extends CreateAssetBaseRequest {
    /** Path param: The Zone ID to use for this endpoint. */
    zoneId: string;
}
export declare const CreateAssetForAccountRequest: Schema.Schema<CreateAssetForAccountRequest>;
export declare const CreateAssetForZoneRequest: Schema.Schema<CreateAssetForZoneRequest>;
export interface CreateAssetResponse {
    /** A short description of the custom asset. */
    description?: string | null;
    lastUpdated?: string | null;
    /** The unique name of the custom asset. Can only contain letters (A-Z, a-z), numbers (0-9), and underscores (\_). */
    name?: string | null;
    /** The size of the asset content in bytes. */
    sizeBytes?: number | null;
    /** The URL where the asset content is fetched from. */
    url?: string | null;
}
export declare const CreateAssetResponse: Schema.Schema<CreateAssetResponse>;
export type CreateAssetError = DefaultErrors;
export declare const createAssetForAccount: API.OperationMethod<CreateAssetForAccountRequest, CreateAssetResponse, CreateAssetError, Credentials | HttpClient.HttpClient>;
export declare const createAssetForZone: API.OperationMethod<CreateAssetForZoneRequest, CreateAssetResponse, CreateAssetError, Credentials | HttpClient.HttpClient>;
interface UpdateAssetBaseRequest {
    assetName: string;
    /** Body param: A short description of the custom asset. */
    description: string;
    /** Body param: The URL where the asset content is fetched from. */
    url: string;
}
export interface UpdateAssetForAccountRequest extends UpdateAssetBaseRequest {
    /** Path param: The Account ID to use for this endpoint. */
    accountId: string;
}
export interface UpdateAssetForZoneRequest extends UpdateAssetBaseRequest {
    /** Path param: The Zone ID to use for this endpoint. */
    zoneId: string;
}
export declare const UpdateAssetForAccountRequest: Schema.Schema<UpdateAssetForAccountRequest>;
export declare const UpdateAssetForZoneRequest: Schema.Schema<UpdateAssetForZoneRequest>;
export interface UpdateAssetResponse {
    /** A short description of the custom asset. */
    description?: string | null;
    lastUpdated?: string | null;
    /** The unique name of the custom asset. Can only contain letters (A-Z, a-z), numbers (0-9), and underscores (\_). */
    name?: string | null;
    /** The size of the asset content in bytes. */
    sizeBytes?: number | null;
    /** The URL where the asset content is fetched from. */
    url?: string | null;
}
export declare const UpdateAssetResponse: Schema.Schema<UpdateAssetResponse>;
export type UpdateAssetError = DefaultErrors;
export declare const updateAssetForAccount: API.OperationMethod<UpdateAssetForAccountRequest, UpdateAssetResponse, UpdateAssetError, Credentials | HttpClient.HttpClient>;
export declare const updateAssetForZone: API.OperationMethod<UpdateAssetForZoneRequest, UpdateAssetResponse, UpdateAssetError, Credentials | HttpClient.HttpClient>;
interface DeleteAssetBaseRequest {
    assetName: string;
}
export interface DeleteAssetForAccountRequest extends DeleteAssetBaseRequest {
    /** Path param: The Account ID to use for this endpoint. */
    accountId: string;
}
export interface DeleteAssetForZoneRequest extends DeleteAssetBaseRequest {
    /** Path param: The Zone ID to use for this endpoint. */
    zoneId: string;
}
export declare const DeleteAssetForAccountRequest: Schema.Schema<DeleteAssetForAccountRequest>;
export declare const DeleteAssetForZoneRequest: Schema.Schema<DeleteAssetForZoneRequest>;
export type DeleteAssetResponse = unknown;
export declare const DeleteAssetResponse: Schema.Schema<DeleteAssetResponse>;
export type DeleteAssetError = DefaultErrors;
export declare const deleteAssetForAccount: API.OperationMethod<DeleteAssetForAccountRequest, DeleteAssetResponse, DeleteAssetError, Credentials | HttpClient.HttpClient>;
export declare const deleteAssetForZone: API.OperationMethod<DeleteAssetForZoneRequest, DeleteAssetResponse, DeleteAssetError, Credentials | HttpClient.HttpClient>;
interface GetCustomPageBaseRequest {
    identifier: "1000_errors" | "500_errors" | "basic_challenge" | "country_challenge" | "ip_block" | "managed_challenge" | "ratelimit_block" | "under_attack" | "waf_block" | "waf_challenge" | (string & {});
}
export interface GetCustomPageForAccountRequest extends GetCustomPageBaseRequest {
    /** Path param: The Account ID to use for this endpoint. */
    accountId: string;
}
export interface GetCustomPageForZoneRequest extends GetCustomPageBaseRequest {
    /** Path param: The Zone ID to use for this endpoint. */
    zoneId: string;
}
export declare const GetCustomPageForAccountRequest: Schema.Schema<GetCustomPageForAccountRequest>;
export declare const GetCustomPageForZoneRequest: Schema.Schema<GetCustomPageForZoneRequest>;
export interface GetCustomPageResponse {
    id?: string | null;
    createdOn?: string | null;
    description?: string | null;
    modifiedOn?: string | null;
    previewTarget?: string | null;
    requiredTokens?: string[] | null;
    /** The custom page state. */
    state?: "default" | "customized" | (string & {}) | null;
    /** The URL associated with the custom page. */
    url?: string | null;
}
export declare const GetCustomPageResponse: Schema.Schema<GetCustomPageResponse>;
export type GetCustomPageError = DefaultErrors;
export declare const getCustomPageForAccount: API.OperationMethod<GetCustomPageForAccountRequest, GetCustomPageResponse, GetCustomPageError, Credentials | HttpClient.HttpClient>;
export declare const getCustomPageForZone: API.OperationMethod<GetCustomPageForZoneRequest, GetCustomPageResponse, GetCustomPageError, Credentials | HttpClient.HttpClient>;
interface ListCustomPagesBaseRequest {
}
export interface ListCustomPagesForAccountRequest extends ListCustomPagesBaseRequest {
    /** Path param: The Account ID to use for this endpoint. */
    accountId: string;
}
export interface ListCustomPagesForZoneRequest extends ListCustomPagesBaseRequest {
    /** Path param: The Zone ID to use for this endpoint. */
    zoneId: string;
}
export declare const ListCustomPagesForAccountRequest: Schema.Schema<ListCustomPagesForAccountRequest>;
export declare const ListCustomPagesForZoneRequest: Schema.Schema<ListCustomPagesForZoneRequest>;
export interface ListCustomPagesResponse {
    result: {
        id?: string | null;
        createdOn?: string | null;
        description?: string | null;
        modifiedOn?: string | null;
        previewTarget?: string | null;
        requiredTokens?: string[] | null;
        state?: "default" | "customized" | (string & {}) | null;
        url?: string | null;
    }[];
}
export declare const ListCustomPagesResponse: Schema.Schema<ListCustomPagesResponse>;
export type ListCustomPagesError = DefaultErrors;
export declare const listCustomPagesForAccount: API.PaginatedOperationMethod<ListCustomPagesForAccountRequest, ListCustomPagesResponse, ListCustomPagesError, Credentials | HttpClient.HttpClient>;
export declare const listCustomPagesForZone: API.PaginatedOperationMethod<ListCustomPagesForZoneRequest, ListCustomPagesResponse, ListCustomPagesError, Credentials | HttpClient.HttpClient>;
interface PutCustomPageBaseRequest {
    identifier: "1000_errors" | "500_errors" | "basic_challenge" | "country_challenge" | "ip_block" | "managed_challenge" | "ratelimit_block" | "under_attack" | "waf_block" | "waf_challenge" | (string & {});
    /** Body param: The custom page state. */
    state: "default" | "customized" | (string & {});
    /** Body param: The URL associated with the custom page. */
    url: string;
}
export interface PutCustomPageForAccountRequest extends PutCustomPageBaseRequest {
    /** Path param: The Account ID to use for this endpoint. */
    accountId: string;
}
export interface PutCustomPageForZoneRequest extends PutCustomPageBaseRequest {
    /** Path param: The Zone ID to use for this endpoint. */
    zoneId: string;
}
export declare const PutCustomPageForAccountRequest: Schema.Schema<PutCustomPageForAccountRequest>;
export declare const PutCustomPageForZoneRequest: Schema.Schema<PutCustomPageForZoneRequest>;
export interface PutCustomPageResponse {
    id?: string | null;
    createdOn?: string | null;
    description?: string | null;
    modifiedOn?: string | null;
    previewTarget?: string | null;
    requiredTokens?: string[] | null;
    /** The custom page state. */
    state?: "default" | "customized" | (string & {}) | null;
    /** The URL associated with the custom page. */
    url?: string | null;
}
export declare const PutCustomPageResponse: Schema.Schema<PutCustomPageResponse>;
export type PutCustomPageError = DefaultErrors;
export declare const putCustomPageForAccount: API.OperationMethod<PutCustomPageForAccountRequest, PutCustomPageResponse, PutCustomPageError, Credentials | HttpClient.HttpClient>;
export declare const putCustomPageForZone: API.OperationMethod<PutCustomPageForZoneRequest, PutCustomPageResponse, PutCustomPageError, Credentials | HttpClient.HttpClient>;
export {};
//# sourceMappingURL=custom-pages.d.ts.map