import { Request, ELB as AWSELB } from 'aws-sdk';
declare type ReturnTypeFrom<K extends keyof AWSELB> = AWSELB[K] extends (...args: any) => Request<infer R, any> ? R : never;
declare type ParamsFrom<K extends keyof AWSELB, Extras> = AWSELB[K] extends {
    (param: infer P, callback: (...args: any) => void): Request<infer R, any>;
    (callback: (...args: any) => void): any;
} ? P & Extras : never;
export declare class ELB {
    private readonly client;
    private constructor();
    readonly signingRegion: undefined;
    readonly service: "elasticloadbalancing";
    readonly global: false;
    readonly category: "Networking and Content Delivery";
    readonly topLevelCalls: readonly ["describeLoadBalancerPolicies", "describeLoadBalancerPolicyTypes", "describeLoadBalancers"];
    addTags: (params: ParamsFrom<'addTags', Record<string, never>>) => Promise<ReturnTypeFrom<'addTags'>>;
    applySecurityGroupsToLoadBalancer: (params: ParamsFrom<'applySecurityGroupsToLoadBalancer', Record<string, never>>) => Promise<ReturnTypeFrom<'applySecurityGroupsToLoadBalancer'>>;
    attachLoadBalancerToSubnets: (params: ParamsFrom<'attachLoadBalancerToSubnets', Record<string, never>>) => Promise<ReturnTypeFrom<'attachLoadBalancerToSubnets'>>;
    configureHealthCheck: (params: ParamsFrom<'configureHealthCheck', Record<string, never>>) => Promise<ReturnTypeFrom<'configureHealthCheck'>>;
    createAppCookieStickinessPolicy: (params: ParamsFrom<'createAppCookieStickinessPolicy', Record<string, never>>) => Promise<ReturnTypeFrom<'createAppCookieStickinessPolicy'>>;
    createLBCookieStickinessPolicy: (params: ParamsFrom<'createLBCookieStickinessPolicy', Record<string, never>>) => Promise<ReturnTypeFrom<'createLBCookieStickinessPolicy'>>;
    createLoadBalancer: (params: ParamsFrom<'createLoadBalancer', Record<string, never>>) => Promise<ReturnTypeFrom<'createLoadBalancer'>>;
    createLoadBalancerListeners: (params: ParamsFrom<'createLoadBalancerListeners', Record<string, never>>) => Promise<ReturnTypeFrom<'createLoadBalancerListeners'>>;
    createLoadBalancerPolicy: (params: ParamsFrom<'createLoadBalancerPolicy', Record<string, never>>) => Promise<ReturnTypeFrom<'createLoadBalancerPolicy'>>;
    deleteLoadBalancer: (params: ParamsFrom<'deleteLoadBalancer', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteLoadBalancer'>>;
    deleteLoadBalancerListeners: (params: ParamsFrom<'deleteLoadBalancerListeners', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteLoadBalancerListeners'>>;
    deleteLoadBalancerPolicy: (params: ParamsFrom<'deleteLoadBalancerPolicy', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteLoadBalancerPolicy'>>;
    deregisterInstancesFromLoadBalancer: (params: ParamsFrom<'deregisterInstancesFromLoadBalancer', Record<string, never>>) => Promise<ReturnTypeFrom<'deregisterInstancesFromLoadBalancer'>>;
    describeAccountLimits: (params: ParamsFrom<'describeAccountLimits', Record<string, never>>) => Promise<ReturnTypeFrom<'describeAccountLimits'>>;
    describeInstanceHealth: (params: ParamsFrom<'describeInstanceHealth', Record<string, never>>) => Promise<ReturnTypeFrom<'describeInstanceHealth'>>;
    describeLoadBalancerAttributes: (params: ParamsFrom<'describeLoadBalancerAttributes', Record<string, never>>) => Promise<ReturnTypeFrom<'describeLoadBalancerAttributes'>>;
    describeLoadBalancerPolicies: (params: ParamsFrom<'describeLoadBalancerPolicies', Record<string, never>>) => Promise<ReturnTypeFrom<'describeLoadBalancerPolicies'>>;
    describeLoadBalancerPolicyTypes: (params: ParamsFrom<'describeLoadBalancerPolicyTypes', Record<string, never>>) => Promise<ReturnTypeFrom<'describeLoadBalancerPolicyTypes'>>;
    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];
        }['LoadBalancerDescriptions'];
    }>;
    describeTags: (params: ParamsFrom<'describeTags', Record<string, never>>) => Promise<ReturnTypeFrom<'describeTags'>>;
    detachLoadBalancerFromSubnets: (params: ParamsFrom<'detachLoadBalancerFromSubnets', Record<string, never>>) => Promise<ReturnTypeFrom<'detachLoadBalancerFromSubnets'>>;
    disableAvailabilityZonesForLoadBalancer: (params: ParamsFrom<'disableAvailabilityZonesForLoadBalancer', Record<string, never>>) => Promise<ReturnTypeFrom<'disableAvailabilityZonesForLoadBalancer'>>;
    enableAvailabilityZonesForLoadBalancer: (params: ParamsFrom<'enableAvailabilityZonesForLoadBalancer', Record<string, never>>) => Promise<ReturnTypeFrom<'enableAvailabilityZonesForLoadBalancer'>>;
    modifyLoadBalancerAttributes: (params: ParamsFrom<'modifyLoadBalancerAttributes', Record<string, never>>) => Promise<ReturnTypeFrom<'modifyLoadBalancerAttributes'>>;
    registerInstancesWithLoadBalancer: (params: ParamsFrom<'registerInstancesWithLoadBalancer', Record<string, never>>) => Promise<ReturnTypeFrom<'registerInstancesWithLoadBalancer'>>;
    removeTags: (params: ParamsFrom<'removeTags', Record<string, never>>) => Promise<ReturnTypeFrom<'removeTags'>>;
    setLoadBalancerListenerSSLCertificate: (params: ParamsFrom<'setLoadBalancerListenerSSLCertificate', Record<string, never>>) => Promise<ReturnTypeFrom<'setLoadBalancerListenerSSLCertificate'>>;
    setLoadBalancerPoliciesForBackendServer: (params: ParamsFrom<'setLoadBalancerPoliciesForBackendServer', Record<string, never>>) => Promise<ReturnTypeFrom<'setLoadBalancerPoliciesForBackendServer'>>;
    setLoadBalancerPoliciesOfListener: (params: ParamsFrom<'setLoadBalancerPoliciesOfListener', Record<string, never>>) => Promise<ReturnTypeFrom<'setLoadBalancerPoliciesOfListener'>>;
    static fromClient(client: AWSELB): ELB;
    static client(options?: AWSELB.Types.ClientConfiguration): ELB;
}
export {};
