import { APIResource } from "../../../core/resource.mjs";
import { APIPromise } from "../../../core/api-promise.mjs";
import { RequestOptions } from "../../../internal/request-options.mjs";
export declare class BaseIPs extends APIResource {
    static readonly _key: readonly ['addressing', 'addressMaps', 'ips'];
    /**
     * Add an IP from a prefix owned by the account to a particular address map.
     *
     * @example
     * ```ts
     * const ip = await client.addressing.addressMaps.ips.update(
     *   '192.0.2.1',
     *   {
     *     account_id: '258def64c72dae45f3e4c8516e2111f2',
     *     address_map_id: '055817b111884e0227e1be16a0be6ee0',
     *   },
     * );
     * ```
     */
    update(ipAddress: string, params: IPUpdateParams, options?: RequestOptions): APIPromise<IPUpdateResponse>;
    /**
     * Remove an IP from a particular address map.
     *
     * @example
     * ```ts
     * const ip = await client.addressing.addressMaps.ips.delete(
     *   '192.0.2.1',
     *   {
     *     account_id: '258def64c72dae45f3e4c8516e2111f2',
     *     address_map_id: '055817b111884e0227e1be16a0be6ee0',
     *   },
     * );
     * ```
     */
    delete(ipAddress: string, params: IPDeleteParams, options?: RequestOptions): APIPromise<IPDeleteResponse>;
}
export declare class IPs extends BaseIPs {
}
export interface IPUpdateResponse {
    errors: Array<IPUpdateResponse.Error>;
    messages: Array<IPUpdateResponse.Message>;
    /**
     * Whether the API call was successful.
     */
    success: true;
    result_info?: IPUpdateResponse.ResultInfo;
}
export declare namespace IPUpdateResponse {
    interface Error {
        code: number;
        message: string;
        documentation_url?: string;
        source?: Error.Source;
    }
    namespace Error {
        interface Source {
            pointer?: string;
        }
    }
    interface Message {
        code: number;
        message: string;
        documentation_url?: string;
        source?: Message.Source;
    }
    namespace Message {
        interface Source {
            pointer?: string;
        }
    }
    interface ResultInfo {
        /**
         * Total number of results for the requested service.
         */
        count?: number;
        /**
         * Current page within paginated list of results.
         */
        page?: number;
        /**
         * Number of results per page of results.
         */
        per_page?: number;
        /**
         * Total results available without any search parameters.
         */
        total_count?: number;
        /**
         * The number of total pages in the entire result set.
         */
        total_pages?: number;
    }
}
export interface IPDeleteResponse {
    errors: Array<IPDeleteResponse.Error>;
    messages: Array<IPDeleteResponse.Message>;
    /**
     * Whether the API call was successful.
     */
    success: true;
    result_info?: IPDeleteResponse.ResultInfo;
}
export declare namespace IPDeleteResponse {
    interface Error {
        code: number;
        message: string;
        documentation_url?: string;
        source?: Error.Source;
    }
    namespace Error {
        interface Source {
            pointer?: string;
        }
    }
    interface Message {
        code: number;
        message: string;
        documentation_url?: string;
        source?: Message.Source;
    }
    namespace Message {
        interface Source {
            pointer?: string;
        }
    }
    interface ResultInfo {
        /**
         * Total number of results for the requested service.
         */
        count?: number;
        /**
         * Current page within paginated list of results.
         */
        page?: number;
        /**
         * Number of results per page of results.
         */
        per_page?: number;
        /**
         * Total results available without any search parameters.
         */
        total_count?: number;
        /**
         * The number of total pages in the entire result set.
         */
        total_pages?: number;
    }
}
export interface IPUpdateParams {
    /**
     * Identifier of a Cloudflare account.
     */
    account_id: string;
    /**
     * Identifier of an Address Map.
     */
    address_map_id: string;
}
export interface IPDeleteParams {
    /**
     * Identifier of a Cloudflare account.
     */
    account_id: string;
    /**
     * Identifier of an Address Map.
     */
    address_map_id: string;
}
export declare namespace IPs {
    export { type IPUpdateResponse as IPUpdateResponse, type IPDeleteResponse as IPDeleteResponse, type IPUpdateParams as IPUpdateParams, type IPDeleteParams as IPDeleteParams, };
}
//# sourceMappingURL=ips.d.mts.map