import type { Filter, ResourcePage as Page, Params } from '../types';
import type { CreateIPv6RangePayload, IPAddress, IPAssignmentPayload, IPRange, IPRangeInformation, IPSharingPayload } from './types';
/**
 * Returns a paginated list of IP Addresses on your Account, excluding private
 * addresses.
 *
 */
export declare const getIPs: (params?: Params, filters?: Filter) => Promise<Page<IPAddress>>;
/**
 * Returns information about a single IP Address on your Account.
 *
 * @param address { string } The address to operate on.
 */
export declare const getIP: (address: string) => Promise<IPAddress>;
/**
 * Sets RDNS on an IP Address. Forward DNS must already be set up for reverse
 * DNS to be applied. If you set the RDNS to null for public IPv4 addresses,
 * it will be reset to the default members.linode.com RDNS value.
 *
 * @param address { string } The address to operate on.
 * @param rdns { string } The reverse DNS assigned to this address. For public
 * IPv4 addresses, this will be set to a default value provided by Linode if not
 * explicitly set.
 */
export declare const updateIP: (address: string, rdns?: null | string) => Promise<IPAddress>;
/**
 * Allocates a new IPv4 Address on your Account. The Linode must be configured
 * to support additional addresses - please open a support ticket requesting
 * additional addresses before attempting allocation
 *
 * @param payload { Object }
 * @param payload.type { string } The type of address you are requesting. Only
 * IPv4 addresses may be allocated through this endpoint.
 * @param payload.public { boolean } Whether to create a public or private IPv4
 * address.
 * @param payload.linode_id { number } The ID of a Linode you you have access to
 *  that this address will be allocated to.
 */
export declare const allocateIp: (payload: any) => Promise<IPAddress>;
/**
 * Assign multiple IPs to multiple Linodes in one Region. This allows swapping,
 * shuffling, or otherwise reorganizing IPv4 Addresses/IPv6 Ranges to your Linodes.
 * When the assignment is finished, all Linodes must end up with at least one public
 * IPv4 and no more than one private IPv4.
 *
 * @param payload { Object }
 * @param payload.region { string } The ID of the Region in which these
 * assignments are to take place. All IPs and Linodes must exist in this Region.
 * @param payload.assignments { Object[] } The ID of the Region in which these
 * assignments are to take place. All IPs and Linodes must exist in this Region.
 */
export declare const assignAddresses: (payload: IPAssignmentPayload) => Promise<{}>;
/**
 * [Legacy endpoint used until IPv6 sharing is flagged on everywhere]
 * Configure shared IPs. A shared IP may be brought up on a Linode other than
 * the one it lists in its response. This can be used to allow one Linode to
 * begin serving requests should another become unresponsive.
 *
 * @param payload { Object }
 * @param payload.linode_id { number } The ID of the Linode that the addresses
 * will be shared with.
 * @param payload.ips { string[] } A list of IPs that will be shared with this
 * Linode. When this is finished, the given Linode will be able to bring up
 * these addresses in addition to the Linodes that these addresses belong to.
 * You must have access to all of these addresses and they must be in the same
 * Region as the Linode.
 */
export declare const shareAddressesv4: (payload: IPSharingPayload) => Promise<{}>;
/**
 * Configure shared IPs. A shared IP may be brought up on a Linode other than
 * the one it lists in its response. This can be used to allow one Linode to
 * begin serving requests should another become unresponsive.
 *
 * @param payload { Object }
 * @param payload.linode_id { number } The ID of the Linode that the addresses
 * will be shared with.
 * @param payload.ips { string[] } A list of IPs that will be shared with this
 * Linode. When this is finished, the given Linode will be able to bring up
 * these addresses in addition to the Linodes that these addresses belong to.
 * You must have access to all of these addresses and they must be in the same
 * Region as the Linode.
 */
export declare const shareAddresses: (payload: IPSharingPayload) => Promise<{}>;
/**
 * Displays the IPv6 pools on your Account.
 *
 */
export declare const getIPv6Pools: (params?: Params) => Promise<Page<IPRange>>;
/**
 * View IPv6 range information.
 *
 */
export declare const getIPv6Ranges: (params?: Params, filter?: Filter) => Promise<Page<IPRange>>;
/**
 * Returns information about a single IPv6 range on your Account.
 *
 * @param range { string } The range address to operate on.
 */
export declare const getIPv6RangeInfo: (range: string, params?: Params) => Promise<IPRangeInformation>;
/**
 * Allows self-serving range creation by the customer
 *
 */
export declare const createIPv6Range: (payload: CreateIPv6RangePayload) => Promise<{}>;
//# sourceMappingURL=networking.d.ts.map