import { Request, ServiceQuotas as AWSServiceQuotas } from 'aws-sdk';
declare type ReturnTypeFrom<K extends keyof AWSServiceQuotas> = AWSServiceQuotas[K] extends (...args: any) => Request<infer R, any> ? R : never;
declare type ParamsFrom<K extends keyof AWSServiceQuotas, Extras> = AWSServiceQuotas[K] extends {
    (param: infer P, callback: (...args: any) => void): Request<infer R, any>;
    (callback: (...args: any) => void): any;
} ? P & Extras : never;
export declare class ServiceQuotas {
    private readonly client;
    private constructor();
    readonly signingRegion: undefined;
    readonly service: "servicequotas";
    readonly global: false;
    readonly category: "Management and Governance";
    readonly topLevelCalls: readonly ["listRequestedServiceQuotaChangeHistory", "listServiceQuotaIncreaseRequestsInTemplate", "listServices"];
    associateServiceQuotaTemplate: (params: ParamsFrom<'associateServiceQuotaTemplate', Record<string, never>>) => Promise<ReturnTypeFrom<'associateServiceQuotaTemplate'>>;
    deleteServiceQuotaIncreaseRequestFromTemplate: (params: ParamsFrom<'deleteServiceQuotaIncreaseRequestFromTemplate', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteServiceQuotaIncreaseRequestFromTemplate'>>;
    disassociateServiceQuotaTemplate: (params: ParamsFrom<'disassociateServiceQuotaTemplate', Record<string, never>>) => Promise<ReturnTypeFrom<'disassociateServiceQuotaTemplate'>>;
    getAWSDefaultServiceQuota: (params: ParamsFrom<'getAWSDefaultServiceQuota', Record<string, never>>) => Promise<ReturnTypeFrom<'getAWSDefaultServiceQuota'>>;
    getAssociationForServiceQuotaTemplate: (params: ParamsFrom<'getAssociationForServiceQuotaTemplate', Record<string, never>>) => Promise<ReturnTypeFrom<'getAssociationForServiceQuotaTemplate'>>;
    getRequestedServiceQuotaChange: (params: ParamsFrom<'getRequestedServiceQuotaChange', Record<string, never>>) => Promise<ReturnTypeFrom<'getRequestedServiceQuotaChange'>>;
    getServiceQuota: (params: ParamsFrom<'getServiceQuota', Record<string, never>>) => Promise<ReturnTypeFrom<'getServiceQuota'>>;
    getServiceQuotaIncreaseRequestFromTemplate: (params: ParamsFrom<'getServiceQuotaIncreaseRequestFromTemplate', Record<string, never>>) => Promise<ReturnTypeFrom<'getServiceQuotaIncreaseRequestFromTemplate'>>;
    listAWSDefaultServiceQuotas(params: {
        [K in keyof ParamsFrom<'listAWSDefaultServiceQuotas', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'listAWSDefaultServiceQuotas', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'listAWSDefaultServiceQuotas'>]-?: ReturnTypeFrom<'listAWSDefaultServiceQuotas'>[K];
        }['Quotas'];
    }>;
    listRequestedServiceQuotaChangeHistory(params: {
        [K in keyof ParamsFrom<'listRequestedServiceQuotaChangeHistory', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'listRequestedServiceQuotaChangeHistory', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'listRequestedServiceQuotaChangeHistory'>]-?: ReturnTypeFrom<'listRequestedServiceQuotaChangeHistory'>[K];
        }['RequestedQuotas'];
    }>;
    listRequestedServiceQuotaChangeHistoryByQuota(params: {
        [K in keyof ParamsFrom<'listRequestedServiceQuotaChangeHistoryByQuota', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'listRequestedServiceQuotaChangeHistoryByQuota', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'listRequestedServiceQuotaChangeHistoryByQuota'>]-?: ReturnTypeFrom<'listRequestedServiceQuotaChangeHistoryByQuota'>[K];
        }['RequestedQuotas'];
    }>;
    listServiceQuotaIncreaseRequestsInTemplate(params: {
        [K in keyof ParamsFrom<'listServiceQuotaIncreaseRequestsInTemplate', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'listServiceQuotaIncreaseRequestsInTemplate', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'listServiceQuotaIncreaseRequestsInTemplate'>]-?: ReturnTypeFrom<'listServiceQuotaIncreaseRequestsInTemplate'>[K];
        }['ServiceQuotaIncreaseRequestInTemplateList'];
    }>;
    listServiceQuotas(params: {
        [K in keyof ParamsFrom<'listServiceQuotas', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'listServiceQuotas', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'listServiceQuotas'>]-?: ReturnTypeFrom<'listServiceQuotas'>[K];
        }['Quotas'];
    }>;
    listServices(params: {
        [K in keyof ParamsFrom<'listServices', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'listServices', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'listServices'>]-?: ReturnTypeFrom<'listServices'>[K];
        }['Services'];
    }>;
    listTagsForResource: (params: ParamsFrom<'listTagsForResource', Record<string, never>>) => Promise<ReturnTypeFrom<'listTagsForResource'>>;
    putServiceQuotaIncreaseRequestIntoTemplate: (params: ParamsFrom<'putServiceQuotaIncreaseRequestIntoTemplate', Record<string, never>>) => Promise<ReturnTypeFrom<'putServiceQuotaIncreaseRequestIntoTemplate'>>;
    requestServiceQuotaIncrease: (params: ParamsFrom<'requestServiceQuotaIncrease', Record<string, never>>) => Promise<ReturnTypeFrom<'requestServiceQuotaIncrease'>>;
    tagResource: (params: ParamsFrom<'tagResource', Record<string, never>>) => Promise<ReturnTypeFrom<'tagResource'>>;
    untagResource: (params: ParamsFrom<'untagResource', Record<string, never>>) => Promise<ReturnTypeFrom<'untagResource'>>;
    static fromClient(client: AWSServiceQuotas): ServiceQuotas;
    static client(options?: AWSServiceQuotas.Types.ClientConfiguration): ServiceQuotas;
}
export {};
