/**
 * Cloudflare REGISTRAR API
 *
 * Generated from Cloudflare TypeScript SDK.
 * DO NOT EDIT - regenerate with: bun scripts/generate.ts --service registrar
 */
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";
export interface GetDomainRequest {
    domainName: string;
    /** Identifier */
    accountId: string;
}
export declare const GetDomainRequest: Schema.Schema<GetDomainRequest>;
export type GetDomainResponse = unknown;
export declare const GetDomainResponse: Schema.Schema<GetDomainResponse>;
export type GetDomainError = DefaultErrors;
export declare const getDomain: API.OperationMethod<GetDomainRequest, GetDomainResponse, GetDomainError, Credentials | HttpClient.HttpClient>;
export interface ListDomainsRequest {
    /** Identifier */
    accountId: string;
}
export declare const ListDomainsRequest: Schema.Schema<ListDomainsRequest>;
export interface ListDomainsResponse {
    result: {
        id?: string | null;
        available?: boolean | null;
        canRegister?: boolean | null;
        createdAt?: string | null;
        currentRegistrar?: string | null;
        expiresAt?: string | null;
        locked?: boolean | null;
        registrantContact?: {
            address: string;
            city: string;
            country: string | null;
            firstName: string | null;
            lastName: string | null;
            organization: string;
            phone: string | null;
            state: string;
            zip: string | null;
            id?: string | null;
            address2?: string | null;
            email?: string | null;
            fax?: string | null;
        } | null;
        registryStatuses?: string | null;
        supportedTld?: boolean | null;
        transferIn?: {
            acceptFoa?: "needed" | "ok" | null;
            approveTransfer?: "needed" | "ok" | "pending" | "trying" | "rejected" | "unknown" | null;
            canCancelTransfer?: boolean | null;
            disablePrivacy?: "needed" | "ok" | "unknown" | null;
            enterAuthCode?: "needed" | "ok" | "pending" | "trying" | "rejected" | null;
            unlockDomain?: "needed" | "ok" | "pending" | "trying" | "unknown" | null;
        } | null;
        updatedAt?: string | null;
    }[];
}
export declare const ListDomainsResponse: Schema.Schema<ListDomainsResponse>;
export type ListDomainsError = DefaultErrors;
export declare const listDomains: API.PaginatedOperationMethod<ListDomainsRequest, ListDomainsResponse, ListDomainsError, Credentials | HttpClient.HttpClient>;
export interface PutDomainRequest {
    domainName: string;
    /** Path param: Identifier */
    accountId: string;
    /** Body param: Auto-renew controls whether subscription is automatically renewed upon domain expiration. */
    autoRenew?: boolean;
    /** Body param: Shows whether a registrar lock is in place for a domain. */
    locked?: boolean;
    /** Body param: Privacy option controls redacting WHOIS information. */
    privacy?: boolean;
}
export declare const PutDomainRequest: Schema.Schema<PutDomainRequest>;
export type PutDomainResponse = unknown;
export declare const PutDomainResponse: Schema.Schema<PutDomainResponse>;
export type PutDomainError = DefaultErrors;
export declare const putDomain: API.OperationMethod<PutDomainRequest, PutDomainResponse, PutDomainError, Credentials | HttpClient.HttpClient>;
//# sourceMappingURL=registrar.d.ts.map