import * as pulumi from "@pulumi/pulumi";
import * as inputs from "../types/input";
import * as outputs from "../types/output";
/**
 * Data source for getting information about AWS EC2 Public IPv4 Pools.
 *
 * ## Example Usage
 *
 * ### Basic Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as aws from "@pulumi/aws";
 *
 * // Returns all public IPv4 pools.
 * const example = aws.ec2.getPublicIpv4Pools({});
 * ```
 *
 * ### Usage with Filter
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as aws from "@pulumi/aws";
 *
 * const example = aws.ec2.getPublicIpv4Pools({
 *     filters: [{
 *         name: "tag-key",
 *         values: ["ExampleTagKey"],
 *     }],
 * });
 * ```
 */
export declare function getPublicIpv4Pools(args?: GetPublicIpv4PoolsArgs, opts?: pulumi.InvokeOptions): Promise<GetPublicIpv4PoolsResult>;
/**
 * A collection of arguments for invoking getPublicIpv4Pools.
 */
export interface GetPublicIpv4PoolsArgs {
    /**
     * Custom filter block as described below.
     */
    filters?: inputs.ec2.GetPublicIpv4PoolsFilter[];
    /**
     * Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration.
     */
    region?: string;
    /**
     * Map of tags, each pair of which must exactly match a pair on the desired pools.
     *
     * More complex filters can be expressed using one or more `filter` sub-blocks,
     * which take the following arguments:
     */
    tags?: {
        [key: string]: string;
    };
}
/**
 * A collection of values returned by getPublicIpv4Pools.
 */
export interface GetPublicIpv4PoolsResult {
    readonly filters?: outputs.ec2.GetPublicIpv4PoolsFilter[];
    /**
     * The provider-assigned unique ID for this managed resource.
     */
    readonly id: string;
    /**
     * List of all the pool IDs found.
     */
    readonly poolIds: string[];
    readonly region: string;
    readonly tags: {
        [key: string]: string;
    };
}
/**
 * Data source for getting information about AWS EC2 Public IPv4 Pools.
 *
 * ## Example Usage
 *
 * ### Basic Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as aws from "@pulumi/aws";
 *
 * // Returns all public IPv4 pools.
 * const example = aws.ec2.getPublicIpv4Pools({});
 * ```
 *
 * ### Usage with Filter
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as aws from "@pulumi/aws";
 *
 * const example = aws.ec2.getPublicIpv4Pools({
 *     filters: [{
 *         name: "tag-key",
 *         values: ["ExampleTagKey"],
 *     }],
 * });
 * ```
 */
export declare function getPublicIpv4PoolsOutput(args?: GetPublicIpv4PoolsOutputArgs, opts?: pulumi.InvokeOutputOptions): pulumi.Output<GetPublicIpv4PoolsResult>;
/**
 * A collection of arguments for invoking getPublicIpv4Pools.
 */
export interface GetPublicIpv4PoolsOutputArgs {
    /**
     * Custom filter block as described below.
     */
    filters?: pulumi.Input<pulumi.Input<inputs.ec2.GetPublicIpv4PoolsFilterArgs>[]>;
    /**
     * Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration.
     */
    region?: pulumi.Input<string>;
    /**
     * Map of tags, each pair of which must exactly match a pair on the desired pools.
     *
     * More complex filters can be expressed using one or more `filter` sub-blocks,
     * which take the following arguments:
     */
    tags?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    }>;
}
