import * as Core from 'cloudflare/core';
import { APIResource } from 'cloudflare/resource';
import * as OutgoingAPI from 'cloudflare/resources/secondary-dns/outgoing/outgoing';
import * as StatusAPI from 'cloudflare/resources/secondary-dns/outgoing/status';
export declare class Outgoing extends APIResource {
    status: StatusAPI.Status;
    /**
     * Create primary zone configuration for outgoing zone transfers.
     */
    create(params: OutgoingCreateParams, options?: Core.RequestOptions): Core.APIPromise<OutgoingCreateResponse>;
    /**
     * Update primary zone configuration for outgoing zone transfers.
     */
    update(params: OutgoingUpdateParams, options?: Core.RequestOptions): Core.APIPromise<OutgoingUpdateResponse>;
    /**
     * Delete primary zone configuration for outgoing zone transfers.
     */
    delete(params: OutgoingDeleteParams, options?: Core.RequestOptions): Core.APIPromise<OutgoingDeleteResponse>;
    /**
     * Disable outgoing zone transfers for primary zone and clears IXFR backlog of
     * primary zone.
     */
    disable(params: OutgoingDisableParams, options?: Core.RequestOptions): Core.APIPromise<SecondaryDNSDisableTransfer>;
    /**
     * Enable outgoing zone transfers for primary zone.
     */
    enable(params: OutgoingEnableParams, options?: Core.RequestOptions): Core.APIPromise<SecondaryDNSEnableTransfer>;
    /**
     * Notifies the secondary nameserver(s) and clears IXFR backlog of primary zone.
     */
    forceNotify(params: OutgoingForceNotifyParams, options?: Core.RequestOptions): Core.APIPromise<OutgoingForceNotifyResponse>;
    /**
     * Get primary zone configuration for outgoing zone transfers.
     */
    get(params: OutgoingGetParams, options?: Core.RequestOptions): Core.APIPromise<OutgoingGetResponse>;
}
/**
 * The zone transfer status of a primary zone
 */
export type SecondaryDNSDisableTransfer = string;
/**
 * The zone transfer status of a primary zone
 */
export type SecondaryDNSEnableTransfer = string;
export interface OutgoingCreateResponse {
    id?: string;
    /**
     * The time for a specific event.
     */
    checked_time?: string;
    /**
     * The time for a specific event.
     */
    created_time?: string;
    /**
     * The time for a specific event.
     */
    last_transferred_time?: string;
    /**
     * Zone name.
     */
    name?: string;
    /**
     * A list of peer tags.
     */
    peers?: Array<unknown>;
    /**
     * The serial number of the SOA for the given zone.
     */
    soa_serial?: number;
}
export interface OutgoingUpdateResponse {
    id?: string;
    /**
     * The time for a specific event.
     */
    checked_time?: string;
    /**
     * The time for a specific event.
     */
    created_time?: string;
    /**
     * The time for a specific event.
     */
    last_transferred_time?: string;
    /**
     * Zone name.
     */
    name?: string;
    /**
     * A list of peer tags.
     */
    peers?: Array<unknown>;
    /**
     * The serial number of the SOA for the given zone.
     */
    soa_serial?: number;
}
export interface OutgoingDeleteResponse {
    id?: string;
}
/**
 * When force_notify query parameter is set to true, the response is a simple
 * string
 */
export type OutgoingForceNotifyResponse = string;
export interface OutgoingGetResponse {
    id?: string;
    /**
     * The time for a specific event.
     */
    checked_time?: string;
    /**
     * The time for a specific event.
     */
    created_time?: string;
    /**
     * The time for a specific event.
     */
    last_transferred_time?: string;
    /**
     * Zone name.
     */
    name?: string;
    /**
     * A list of peer tags.
     */
    peers?: Array<unknown>;
    /**
     * The serial number of the SOA for the given zone.
     */
    soa_serial?: number;
}
export interface OutgoingCreateParams {
    /**
     * Path param:
     */
    zone_id: string;
    /**
     * Body param: Zone name.
     */
    name: string;
    /**
     * Body param: A list of peer tags.
     */
    peers: Array<unknown>;
}
export interface OutgoingUpdateParams {
    /**
     * Path param:
     */
    zone_id: string;
    /**
     * Body param: Zone name.
     */
    name: string;
    /**
     * Body param: A list of peer tags.
     */
    peers: Array<unknown>;
}
export interface OutgoingDeleteParams {
    zone_id: string;
}
export interface OutgoingDisableParams {
    zone_id: string;
}
export interface OutgoingEnableParams {
    zone_id: string;
}
export interface OutgoingForceNotifyParams {
    zone_id: string;
}
export interface OutgoingGetParams {
    zone_id: string;
}
export declare namespace Outgoing {
    export import SecondaryDNSDisableTransfer = OutgoingAPI.SecondaryDNSDisableTransfer;
    export import SecondaryDNSEnableTransfer = OutgoingAPI.SecondaryDNSEnableTransfer;
    export import OutgoingCreateResponse = OutgoingAPI.OutgoingCreateResponse;
    export import OutgoingUpdateResponse = OutgoingAPI.OutgoingUpdateResponse;
    export import OutgoingDeleteResponse = OutgoingAPI.OutgoingDeleteResponse;
    export import OutgoingForceNotifyResponse = OutgoingAPI.OutgoingForceNotifyResponse;
    export import OutgoingGetResponse = OutgoingAPI.OutgoingGetResponse;
    export import OutgoingCreateParams = OutgoingAPI.OutgoingCreateParams;
    export import OutgoingUpdateParams = OutgoingAPI.OutgoingUpdateParams;
    export import OutgoingDeleteParams = OutgoingAPI.OutgoingDeleteParams;
    export import OutgoingDisableParams = OutgoingAPI.OutgoingDisableParams;
    export import OutgoingEnableParams = OutgoingAPI.OutgoingEnableParams;
    export import OutgoingForceNotifyParams = OutgoingAPI.OutgoingForceNotifyParams;
    export import OutgoingGetParams = OutgoingAPI.OutgoingGetParams;
    export import Status = StatusAPI.Status;
    export import StatusGetParams = StatusAPI.StatusGetParams;
}
//# sourceMappingURL=outgoing.d.ts.map