import { Request, Support as AWSSupport } from 'aws-sdk';
declare type ReturnTypeFrom<K extends keyof AWSSupport> = AWSSupport[K] extends (...args: any) => Request<infer R, any> ? R : never;
declare type ParamsFrom<K extends keyof AWSSupport, Extras> = AWSSupport[K] extends {
    (param: infer P, callback: (...args: any) => void): Request<infer R, any>;
    (callback: (...args: any) => void): any;
} ? P & Extras : never;
export declare class Support {
    private readonly client;
    private constructor();
    readonly signingRegion: undefined;
    readonly service: "support";
    readonly global: false;
    readonly category: "Customer Engagement";
    readonly topLevelCalls: readonly ["describeCases", "describeServices"];
    addAttachmentsToSet: (params: ParamsFrom<'addAttachmentsToSet', Record<string, never>>) => Promise<ReturnTypeFrom<'addAttachmentsToSet'>>;
    addCommunicationToCase: (params: ParamsFrom<'addCommunicationToCase', Record<string, never>>) => Promise<ReturnTypeFrom<'addCommunicationToCase'>>;
    createCase: (params: ParamsFrom<'createCase', Record<string, never>>) => Promise<ReturnTypeFrom<'createCase'>>;
    describeAttachment: (params: ParamsFrom<'describeAttachment', Record<string, never>>) => Promise<ReturnTypeFrom<'describeAttachment'>>;
    describeCases(params: {
        [K in keyof ParamsFrom<'describeCases', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'describeCases', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'describeCases'>]-?: ReturnTypeFrom<'describeCases'>[K];
        }['cases'];
    }>;
    describeCommunications(params: {
        [K in keyof ParamsFrom<'describeCommunications', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'describeCommunications', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'describeCommunications'>]-?: ReturnTypeFrom<'describeCommunications'>[K];
        }['communications'];
    }>;
    describeServices: (params: ParamsFrom<'describeServices', Record<string, never>>) => Promise<ReturnTypeFrom<'describeServices'>>;
    describeSeverityLevels: (params: ParamsFrom<'describeSeverityLevels', Record<string, never>>) => Promise<ReturnTypeFrom<'describeSeverityLevels'>>;
    describeTrustedAdvisorCheckRefreshStatuses: (params: ParamsFrom<'describeTrustedAdvisorCheckRefreshStatuses', Record<string, never>>) => Promise<ReturnTypeFrom<'describeTrustedAdvisorCheckRefreshStatuses'>>;
    describeTrustedAdvisorCheckResult: (params: ParamsFrom<'describeTrustedAdvisorCheckResult', Record<string, never>>) => Promise<ReturnTypeFrom<'describeTrustedAdvisorCheckResult'>>;
    describeTrustedAdvisorCheckSummaries: (params: ParamsFrom<'describeTrustedAdvisorCheckSummaries', Record<string, never>>) => Promise<ReturnTypeFrom<'describeTrustedAdvisorCheckSummaries'>>;
    describeTrustedAdvisorChecks: (params: ParamsFrom<'describeTrustedAdvisorChecks', Record<string, never>>) => Promise<ReturnTypeFrom<'describeTrustedAdvisorChecks'>>;
    refreshTrustedAdvisorCheck: (params: ParamsFrom<'refreshTrustedAdvisorCheck', Record<string, never>>) => Promise<ReturnTypeFrom<'refreshTrustedAdvisorCheck'>>;
    resolveCase: (params: ParamsFrom<'resolveCase', Record<string, never>>) => Promise<ReturnTypeFrom<'resolveCase'>>;
    static fromClient(client: AWSSupport): Support;
    static client(options?: AWSSupport.Types.ClientConfiguration): Support;
}
export {};
