import { Request, Health as AWSHealth } from 'aws-sdk';
declare type ReturnTypeFrom<K extends keyof AWSHealth> = AWSHealth[K] extends (...args: any) => Request<infer R, any> ? R : never;
declare type ParamsFrom<K extends keyof AWSHealth, Extras> = AWSHealth[K] extends {
    (param: infer P, callback: (...args: any) => void): Request<infer R, any>;
    (callback: (...args: any) => void): any;
} ? P & Extras : never;
export declare class Health {
    private readonly client;
    private constructor();
    readonly signingRegion: undefined;
    readonly service: "health";
    readonly global: false;
    readonly category: "Management and Governance";
    readonly topLevelCalls: readonly ["describeEntityAggregates", "describeEventTypes", "describeEvents", "describeEventsForOrganization"];
    describeAffectedAccountsForOrganization(params: {
        [K in keyof ParamsFrom<'describeAffectedAccountsForOrganization', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'describeAffectedAccountsForOrganization', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'describeAffectedAccountsForOrganization'>]-?: ReturnTypeFrom<'describeAffectedAccountsForOrganization'>[K];
        }['affectedAccounts'];
    }>;
    describeAffectedEntities(params: {
        [K in keyof ParamsFrom<'describeAffectedEntities', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'describeAffectedEntities', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'describeAffectedEntities'>]-?: ReturnTypeFrom<'describeAffectedEntities'>[K];
        }['entities'];
    }>;
    describeAffectedEntitiesForOrganization(params: {
        [K in keyof ParamsFrom<'describeAffectedEntitiesForOrganization', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'describeAffectedEntitiesForOrganization', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'describeAffectedEntitiesForOrganization'>]-?: ReturnTypeFrom<'describeAffectedEntitiesForOrganization'>[K];
        }['entities'];
    }>;
    describeEntityAggregates: (params: ParamsFrom<'describeEntityAggregates', Record<string, never>>) => Promise<ReturnTypeFrom<'describeEntityAggregates'>>;
    describeEventAggregates(params: {
        [K in keyof ParamsFrom<'describeEventAggregates', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'describeEventAggregates', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'describeEventAggregates'>]-?: ReturnTypeFrom<'describeEventAggregates'>[K];
        }['eventAggregates'];
    }>;
    describeEventDetails: (params: ParamsFrom<'describeEventDetails', Record<string, never>>) => Promise<ReturnTypeFrom<'describeEventDetails'>>;
    describeEventDetailsForOrganization: (params: ParamsFrom<'describeEventDetailsForOrganization', Record<string, never>>) => Promise<ReturnTypeFrom<'describeEventDetailsForOrganization'>>;
    describeEventTypes(params: {
        [K in keyof ParamsFrom<'describeEventTypes', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'describeEventTypes', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'describeEventTypes'>]-?: ReturnTypeFrom<'describeEventTypes'>[K];
        }['eventTypes'];
    }>;
    describeEvents(params: {
        [K in keyof ParamsFrom<'describeEvents', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'describeEvents', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'describeEvents'>]-?: ReturnTypeFrom<'describeEvents'>[K];
        }['events'];
    }>;
    describeEventsForOrganization(params: {
        [K in keyof ParamsFrom<'describeEventsForOrganization', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'describeEventsForOrganization', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'describeEventsForOrganization'>]-?: ReturnTypeFrom<'describeEventsForOrganization'>[K];
        }['events'];
    }>;
    describeHealthServiceStatusForOrganization: (params: ParamsFrom<'describeHealthServiceStatusForOrganization', Record<string, never>>) => Promise<ReturnTypeFrom<'describeHealthServiceStatusForOrganization'>>;
    disableHealthServiceAccessForOrganization: (params: ParamsFrom<'disableHealthServiceAccessForOrganization', Record<string, never>>) => Promise<ReturnTypeFrom<'disableHealthServiceAccessForOrganization'>>;
    enableHealthServiceAccessForOrganization: (params: ParamsFrom<'enableHealthServiceAccessForOrganization', Record<string, never>>) => Promise<ReturnTypeFrom<'enableHealthServiceAccessForOrganization'>>;
    static fromClient(client: AWSHealth): Health;
    static client(options?: AWSHealth.Types.ClientConfiguration): Health;
}
export {};
