import * as pulumi from "@pulumi/pulumi";
/**
 * Provides details about a Hetzner Cloud Floating IP.
 *
 * This resource can be useful when you need to determine a Floating IP ID based on the IP address.
 *
 * ## Example Usage
 *
 * # Data Source: hcloud.FloatingIp
 *
 * Provides details about a Hetzner Cloud Floating IP.
 * This resource can be useful when you need to determine a Floating IP ID based on the IP address.
 *
 * ### Additional Examples
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as hcloud from "@pulumi/hcloud";
 *
 * const ip1 = hcloud.getFloatingIp({
 *     ipAddress: "1.2.3.4",
 * });
 * const ip2 = hcloud.getFloatingIp({
 *     withSelector: "key=value",
 * });
 * const main: hcloud.FloatingIpAssignment[] = [];
 * for (const range = {value: 0}; range.value < counter; range.value++) {
 *     main.push(new hcloud.FloatingIpAssignment(`main-${range.value}`, {
 *         floatingIpId: ip1.then(ip1 => ip1.id),
 *         serverId: Number(mainHcloudServer.id),
 *     }));
 * }
 * ```
 */
export declare function getFloatingIp(args?: GetFloatingIpArgs, opts?: pulumi.InvokeOptions): Promise<GetFloatingIpResult>;
/**
 * A collection of arguments for invoking getFloatingIp.
 */
export interface GetFloatingIpArgs {
    /**
     * ID of the Floating IP.
     */
    id?: number;
    /**
     * IP address of the Floating IP.
     */
    ipAddress?: string;
    /**
     * Name of the Floating IP.
     */
    name?: string;
    /**
     * @deprecated Please use the withSelector property instead.
     */
    selector?: string;
    /**
     * [Label selector](https://docs.hetzner.cloud/reference/cloud#label-selector)
     */
    withSelector?: string;
}
/**
 * A collection of values returned by getFloatingIp.
 */
export interface GetFloatingIpResult {
    /**
     * (bool) Whether delete protection is enabled.
     */
    readonly deleteProtection: boolean;
    /**
     * (string) Description of the Floating IP.
     */
    readonly description: string;
    /**
     * (string) Home location.
     */
    readonly homeLocation: string;
    /**
     * (int) Unique ID of the Floating IP.
     */
    readonly id: number;
    /**
     * (string) IP Address of the Floating IP.
     */
    readonly ipAddress: string;
    /**
     * (string) IPv6 subnet. (Only set if `type` is `ipv6`)
     */
    readonly ipNetwork: string;
    /**
     * (map) User-defined labels (key-value pairs).
     */
    readonly labels: {
        [key: string]: string;
    };
    /**
     * (string) Name of the Floating IP.
     */
    readonly name?: string;
    /**
     * @deprecated Please use the withSelector property instead.
     */
    readonly selector?: string;
    /**
     * (int) Server to assign the Floating IP is assigned to.
     */
    readonly serverId: number;
    /**
     * (string) Type of the Floating IP.
     */
    readonly type: string;
    readonly withSelector?: string;
}
/**
 * Provides details about a Hetzner Cloud Floating IP.
 *
 * This resource can be useful when you need to determine a Floating IP ID based on the IP address.
 *
 * ## Example Usage
 *
 * # Data Source: hcloud.FloatingIp
 *
 * Provides details about a Hetzner Cloud Floating IP.
 * This resource can be useful when you need to determine a Floating IP ID based on the IP address.
 *
 * ### Additional Examples
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as hcloud from "@pulumi/hcloud";
 *
 * const ip1 = hcloud.getFloatingIp({
 *     ipAddress: "1.2.3.4",
 * });
 * const ip2 = hcloud.getFloatingIp({
 *     withSelector: "key=value",
 * });
 * const main: hcloud.FloatingIpAssignment[] = [];
 * for (const range = {value: 0}; range.value < counter; range.value++) {
 *     main.push(new hcloud.FloatingIpAssignment(`main-${range.value}`, {
 *         floatingIpId: ip1.then(ip1 => ip1.id),
 *         serverId: Number(mainHcloudServer.id),
 *     }));
 * }
 * ```
 */
export declare function getFloatingIpOutput(args?: GetFloatingIpOutputArgs, opts?: pulumi.InvokeOutputOptions): pulumi.Output<GetFloatingIpResult>;
/**
 * A collection of arguments for invoking getFloatingIp.
 */
export interface GetFloatingIpOutputArgs {
    /**
     * ID of the Floating IP.
     */
    id?: pulumi.Input<number | undefined>;
    /**
     * IP address of the Floating IP.
     */
    ipAddress?: pulumi.Input<string | undefined>;
    /**
     * Name of the Floating IP.
     */
    name?: pulumi.Input<string | undefined>;
    /**
     * @deprecated Please use the withSelector property instead.
     */
    selector?: pulumi.Input<string | undefined>;
    /**
     * [Label selector](https://docs.hetzner.cloud/reference/cloud#label-selector)
     */
    withSelector?: pulumi.Input<string | undefined>;
}
//# sourceMappingURL=getFloatingIp.d.ts.map