import { Request, ELBv2 as AWSELBv2 } from 'aws-sdk';
declare type ReturnTypeFrom<K extends keyof AWSELBv2> = AWSELBv2[K] extends (...args: any) => Request<infer R, any> ? R : never;
declare type ParamsFrom<K extends keyof AWSELBv2, Extras> = AWSELBv2[K] extends {
    (param: infer P, callback: (...args: any) => void): Request<infer R, any>;
    (callback: (...args: any) => void): any;
} ? P & Extras : never;
export declare class ELBv2 {
    private readonly client;
    private constructor();
    readonly signingRegion: undefined;
    readonly service: "elasticloadbalancing";
    readonly global: false;
    readonly category: "Networking and Content Delivery";
    readonly topLevelCalls: readonly ["describeListeners", "describeLoadBalancers", "describeTargetGroups"];
    addListenerCertificates: (params: ParamsFrom<'addListenerCertificates', Record<string, never>>) => Promise<ReturnTypeFrom<'addListenerCertificates'>>;
    addTags: (params: ParamsFrom<'addTags', Record<string, never>>) => Promise<ReturnTypeFrom<'addTags'>>;
    createListener: (params: ParamsFrom<'createListener', Record<string, never>>) => Promise<ReturnTypeFrom<'createListener'>>;
    createLoadBalancer: (params: ParamsFrom<'createLoadBalancer', Record<string, never>>) => Promise<ReturnTypeFrom<'createLoadBalancer'>>;
    createRule: (params: ParamsFrom<'createRule', Record<string, never>>) => Promise<ReturnTypeFrom<'createRule'>>;
    createTargetGroup: (params: ParamsFrom<'createTargetGroup', Record<string, never>>) => Promise<ReturnTypeFrom<'createTargetGroup'>>;
    deleteListener: (params: ParamsFrom<'deleteListener', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteListener'>>;
    deleteLoadBalancer: (params: ParamsFrom<'deleteLoadBalancer', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteLoadBalancer'>>;
    deleteRule: (params: ParamsFrom<'deleteRule', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteRule'>>;
    deleteTargetGroup: (params: ParamsFrom<'deleteTargetGroup', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteTargetGroup'>>;
    deregisterTargets: (params: ParamsFrom<'deregisterTargets', Record<string, never>>) => Promise<ReturnTypeFrom<'deregisterTargets'>>;
    describeAccountLimits: (params: ParamsFrom<'describeAccountLimits', Record<string, never>>) => Promise<ReturnTypeFrom<'describeAccountLimits'>>;
    describeListenerCertificates: (params: ParamsFrom<'describeListenerCertificates', Record<string, never>>) => Promise<ReturnTypeFrom<'describeListenerCertificates'>>;
    describeListeners(params: {
        [K in keyof ParamsFrom<'describeListeners', {
            next?: string;
        }>]: ParamsFrom<'describeListeners', {
            next?: string;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'describeListeners'>]-?: ReturnTypeFrom<'describeListeners'>[K];
        }['Listeners'];
    }>;
    describeLoadBalancerAttributes: (params: ParamsFrom<'describeLoadBalancerAttributes', Record<string, never>>) => Promise<ReturnTypeFrom<'describeLoadBalancerAttributes'>>;
    describeLoadBalancers(params: {
        [K in keyof ParamsFrom<'describeLoadBalancers', {
            next?: string;
        }>]: ParamsFrom<'describeLoadBalancers', {
            next?: string;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'describeLoadBalancers'>]-?: ReturnTypeFrom<'describeLoadBalancers'>[K];
        }['LoadBalancers'];
    }>;
    describeRules: (params: ParamsFrom<'describeRules', Record<string, never>>) => Promise<ReturnTypeFrom<'describeRules'>>;
    describeSSLPolicies: (params: ParamsFrom<'describeSSLPolicies', Record<string, never>>) => Promise<ReturnTypeFrom<'describeSSLPolicies'>>;
    describeTags: (params: ParamsFrom<'describeTags', Record<string, never>>) => Promise<ReturnTypeFrom<'describeTags'>>;
    describeTargetGroupAttributes: (params: ParamsFrom<'describeTargetGroupAttributes', Record<string, never>>) => Promise<ReturnTypeFrom<'describeTargetGroupAttributes'>>;
    describeTargetGroups(params: {
        [K in keyof ParamsFrom<'describeTargetGroups', {
            next?: string;
        }>]: ParamsFrom<'describeTargetGroups', {
            next?: string;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'describeTargetGroups'>]-?: ReturnTypeFrom<'describeTargetGroups'>[K];
        }['TargetGroups'];
    }>;
    describeTargetHealth: (params: ParamsFrom<'describeTargetHealth', Record<string, never>>) => Promise<ReturnTypeFrom<'describeTargetHealth'>>;
    modifyListener: (params: ParamsFrom<'modifyListener', Record<string, never>>) => Promise<ReturnTypeFrom<'modifyListener'>>;
    modifyLoadBalancerAttributes: (params: ParamsFrom<'modifyLoadBalancerAttributes', Record<string, never>>) => Promise<ReturnTypeFrom<'modifyLoadBalancerAttributes'>>;
    modifyRule: (params: ParamsFrom<'modifyRule', Record<string, never>>) => Promise<ReturnTypeFrom<'modifyRule'>>;
    modifyTargetGroup: (params: ParamsFrom<'modifyTargetGroup', Record<string, never>>) => Promise<ReturnTypeFrom<'modifyTargetGroup'>>;
    modifyTargetGroupAttributes: (params: ParamsFrom<'modifyTargetGroupAttributes', Record<string, never>>) => Promise<ReturnTypeFrom<'modifyTargetGroupAttributes'>>;
    registerTargets: (params: ParamsFrom<'registerTargets', Record<string, never>>) => Promise<ReturnTypeFrom<'registerTargets'>>;
    removeListenerCertificates: (params: ParamsFrom<'removeListenerCertificates', Record<string, never>>) => Promise<ReturnTypeFrom<'removeListenerCertificates'>>;
    removeTags: (params: ParamsFrom<'removeTags', Record<string, never>>) => Promise<ReturnTypeFrom<'removeTags'>>;
    setIpAddressType: (params: ParamsFrom<'setIpAddressType', Record<string, never>>) => Promise<ReturnTypeFrom<'setIpAddressType'>>;
    setRulePriorities: (params: ParamsFrom<'setRulePriorities', Record<string, never>>) => Promise<ReturnTypeFrom<'setRulePriorities'>>;
    setSecurityGroups: (params: ParamsFrom<'setSecurityGroups', Record<string, never>>) => Promise<ReturnTypeFrom<'setSecurityGroups'>>;
    setSubnets: (params: ParamsFrom<'setSubnets', Record<string, never>>) => Promise<ReturnTypeFrom<'setSubnets'>>;
    static fromClient(client: AWSELBv2): ELBv2;
    static client(options?: AWSELBv2.Types.ClientConfiguration): ELBv2;
}
export {};
