import * as pulumi from "@pulumi/pulumi";
import { output as outputs } from "../types";
/**
 * Use this data source to query the list of ELB listeners.
 *
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as huaweicloud from "@pulumi/huaweicloud";
 *
 * const config = new pulumi.Config();
 * const protocol = config.requireObject("protocol");
 * const test = huaweicloud.Elb.getListeners({
 *     protocol: protocol,
 * });
 * ```
 */
export declare function getListeners(args?: GetListenersArgs, opts?: pulumi.InvokeOptions): Promise<GetListenersResult>;
/**
 * A collection of arguments for invoking getListeners.
 */
export interface GetListenersArgs {
    /**
     * The ID of the CA certificate used by the listener.
     */
    clientCaTlsContainerRef?: string;
    /**
     * The ID of the default pool with which the listener is associated.
     */
    defaultPoolId?: string;
    /**
     * The ID of the server certificate used by the listener.
     */
    defaultTlsContainerRef?: string;
    /**
     * The description for the listener.
     */
    description?: string;
    /**
     * The ID of the enterprise project.
     */
    enterpriseProjectId?: string;
    /**
     * Whether the ELB listener uses HTTP/2. Value options: **true**, **false**.
     */
    http2Enable?: string;
    /**
     * ID of the listener.
     */
    listenerId?: string;
    /**
     * The ID of the load balancer that the listener is added to.
     */
    loadbalancerId?: string;
    /**
     * The listener name.
     */
    name?: string;
    /**
     * The listener protocol.
     * The valid values are **TCP**, **UDP**, **HTTP** and **TERMINATED_HTTPS**.
     */
    protocol?: string;
    /**
     * The front-end listening port of the listener.
     * The valid value is range from `1` to `65535`.
     */
    protocolPort?: string;
    /**
     * Specifies the region in which to query the data source.
     * If omitted, the provider-level region will be used.
     */
    region?: string;
    /**
     * The security policy used by the listener.
     */
    tlsCiphersPolicy?: string;
}
/**
 * A collection of values returned by getListeners.
 */
export interface GetListenersResult {
    /**
     * The ID of the CA certificate used by the listener.
     */
    readonly clientCaTlsContainerRef?: string;
    /**
     * The ID of the default pool with which the ELB listener is associated.
     */
    readonly defaultPoolId?: string;
    /**
     * The ID of the server certificate used by the listener.
     */
    readonly defaultTlsContainerRef?: string;
    /**
     * The description of the ELB listener.
     */
    readonly description?: string;
    readonly enterpriseProjectId?: string;
    /**
     * Whether the ELB listener uses HTTP/2.
     */
    readonly http2Enable?: string;
    /**
     * The provider-assigned unique ID for this managed resource.
     */
    readonly id: string;
    readonly listenerId?: string;
    /**
     * Listener list.
     * The listeners structure is documented below.
     */
    readonly listeners: outputs.Elb.GetListenersListener[];
    readonly loadbalancerId?: string;
    /**
     * The listener name.
     */
    readonly name?: string;
    /**
     * The listener protocol.
     */
    readonly protocol?: string;
    /**
     * The front-end listening port of the listener.
     */
    readonly protocolPort?: string;
    readonly region: string;
    /**
     * security policy used by the listener.
     */
    readonly tlsCiphersPolicy?: string;
}
export declare function getListenersOutput(args?: GetListenersOutputArgs, opts?: pulumi.InvokeOptions): pulumi.Output<GetListenersResult>;
/**
 * A collection of arguments for invoking getListeners.
 */
export interface GetListenersOutputArgs {
    /**
     * The ID of the CA certificate used by the listener.
     */
    clientCaTlsContainerRef?: pulumi.Input<string>;
    /**
     * The ID of the default pool with which the listener is associated.
     */
    defaultPoolId?: pulumi.Input<string>;
    /**
     * The ID of the server certificate used by the listener.
     */
    defaultTlsContainerRef?: pulumi.Input<string>;
    /**
     * The description for the listener.
     */
    description?: pulumi.Input<string>;
    /**
     * The ID of the enterprise project.
     */
    enterpriseProjectId?: pulumi.Input<string>;
    /**
     * Whether the ELB listener uses HTTP/2. Value options: **true**, **false**.
     */
    http2Enable?: pulumi.Input<string>;
    /**
     * ID of the listener.
     */
    listenerId?: pulumi.Input<string>;
    /**
     * The ID of the load balancer that the listener is added to.
     */
    loadbalancerId?: pulumi.Input<string>;
    /**
     * The listener name.
     */
    name?: pulumi.Input<string>;
    /**
     * The listener protocol.
     * The valid values are **TCP**, **UDP**, **HTTP** and **TERMINATED_HTTPS**.
     */
    protocol?: pulumi.Input<string>;
    /**
     * The front-end listening port of the listener.
     * The valid value is range from `1` to `65535`.
     */
    protocolPort?: pulumi.Input<string>;
    /**
     * Specifies the region in which to query the data source.
     * If omitted, the provider-level region will be used.
     */
    region?: pulumi.Input<string>;
    /**
     * The security policy used by the listener.
     */
    tlsCiphersPolicy?: pulumi.Input<string>;
}
