import * as Core from 'cloudflare/core';
import { APIResource } from 'cloudflare/resource';
import * as HostnamesAPI from 'cloudflare/resources/web3/hostnames/hostnames';
import * as IPFSUniversalPathsAPI from 'cloudflare/resources/web3/hostnames/ipfs-universal-paths/ipfs-universal-paths';
import { SinglePage } from 'cloudflare/pagination';
export declare class Hostnames extends APIResource {
    ipfsUniversalPaths: IPFSUniversalPathsAPI.IPFSUniversalPaths;
    /**
     * Create Web3 Hostname
     */
    create(zoneIdentifier: string, body: HostnameCreateParams, options?: Core.RequestOptions): Core.APIPromise<DistributedWebHostname>;
    /**
     * List Web3 Hostnames
     */
    list(zoneIdentifier: string, options?: Core.RequestOptions): Core.PagePromise<DistributedWebHostnamesSinglePage, DistributedWebHostname>;
    /**
     * Delete Web3 Hostname
     */
    delete(zoneIdentifier: string, identifier: string, options?: Core.RequestOptions): Core.APIPromise<HostnameDeleteResponse | null>;
    /**
     * Edit Web3 Hostname
     */
    edit(zoneIdentifier: string, identifier: string, body: HostnameEditParams, options?: Core.RequestOptions): Core.APIPromise<DistributedWebHostname>;
    /**
     * Web3 Hostname Details
     */
    get(zoneIdentifier: string, identifier: string, options?: Core.RequestOptions): Core.APIPromise<DistributedWebHostname>;
}
export declare class DistributedWebHostnamesSinglePage extends SinglePage<DistributedWebHostname> {
}
export interface DistributedWebHostname {
    /**
     * Identifier
     */
    id?: string;
    created_on?: string;
    /**
     * An optional description of the hostname.
     */
    description?: string;
    /**
     * DNSLink value used if the target is ipfs.
     */
    dnslink?: string;
    modified_on?: string;
    /**
     * The hostname that will point to the target gateway via CNAME.
     */
    name?: string;
    /**
     * Status of the hostname's activation.
     */
    status?: 'active' | 'pending' | 'deleting' | 'error';
    /**
     * Target gateway of the hostname.
     */
    target?: 'ethereum' | 'ipfs' | 'ipfs_universal_path';
}
export interface HostnameDeleteResponse {
    /**
     * Identifier
     */
    id: string;
}
export interface HostnameCreateParams {
    /**
     * Target gateway of the hostname.
     */
    target: 'ethereum' | 'ipfs' | 'ipfs_universal_path';
    /**
     * An optional description of the hostname.
     */
    description?: string;
    /**
     * DNSLink value used if the target is ipfs.
     */
    dnslink?: string;
}
export interface HostnameEditParams {
    /**
     * An optional description of the hostname.
     */
    description?: string;
    /**
     * DNSLink value used if the target is ipfs.
     */
    dnslink?: string;
}
export declare namespace Hostnames {
    export import DistributedWebHostname = HostnamesAPI.DistributedWebHostname;
    export import HostnameDeleteResponse = HostnamesAPI.HostnameDeleteResponse;
    export import DistributedWebHostnamesSinglePage = HostnamesAPI.DistributedWebHostnamesSinglePage;
    export import HostnameCreateParams = HostnamesAPI.HostnameCreateParams;
    export import HostnameEditParams = HostnamesAPI.HostnameEditParams;
    export import IPFSUniversalPaths = IPFSUniversalPathsAPI.IPFSUniversalPaths;
}
//# sourceMappingURL=hostnames.d.ts.map