import { Request, EMR as AWSEMR } from 'aws-sdk';
declare type ReturnTypeFrom<K extends keyof AWSEMR> = AWSEMR[K] extends (...args: any) => Request<infer R, any> ? R : never;
declare type ParamsFrom<K extends keyof AWSEMR, Extras> = AWSEMR[K] extends {
    (param: infer P, callback: (...args: any) => void): Request<infer R, any>;
    (callback: (...args: any) => void): any;
} ? P & Extras : never;
export declare class EMR {
    private readonly client;
    private constructor();
    readonly signingRegion: undefined;
    readonly service: "elasticmapreduce";
    readonly global: false;
    readonly category: "Analytics";
    readonly topLevelCalls: readonly ["describeJobFlows", "listClusters", "listNotebookExecutions", "listReleaseLabels", "listSecurityConfigurations", "listStudioSessionMappings", "listStudios"];
    addInstanceFleet: (params: ParamsFrom<'addInstanceFleet', Record<string, never>>) => Promise<ReturnTypeFrom<'addInstanceFleet'>>;
    addInstanceGroups: (params: ParamsFrom<'addInstanceGroups', Record<string, never>>) => Promise<ReturnTypeFrom<'addInstanceGroups'>>;
    addJobFlowSteps: (params: ParamsFrom<'addJobFlowSteps', Record<string, never>>) => Promise<ReturnTypeFrom<'addJobFlowSteps'>>;
    addTags: (params: ParamsFrom<'addTags', Record<string, never>>) => Promise<ReturnTypeFrom<'addTags'>>;
    cancelSteps: (params: ParamsFrom<'cancelSteps', Record<string, never>>) => Promise<ReturnTypeFrom<'cancelSteps'>>;
    createSecurityConfiguration: (params: ParamsFrom<'createSecurityConfiguration', Record<string, never>>) => Promise<ReturnTypeFrom<'createSecurityConfiguration'>>;
    createStudio: (params: ParamsFrom<'createStudio', Record<string, never>>) => Promise<ReturnTypeFrom<'createStudio'>>;
    createStudioSessionMapping: (params: ParamsFrom<'createStudioSessionMapping', Record<string, never>>) => Promise<ReturnTypeFrom<'createStudioSessionMapping'>>;
    deleteSecurityConfiguration: (params: ParamsFrom<'deleteSecurityConfiguration', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteSecurityConfiguration'>>;
    deleteStudio: (params: ParamsFrom<'deleteStudio', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteStudio'>>;
    deleteStudioSessionMapping: (params: ParamsFrom<'deleteStudioSessionMapping', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteStudioSessionMapping'>>;
    describeCluster: (params: ParamsFrom<'describeCluster', Record<string, never>>) => Promise<ReturnTypeFrom<'describeCluster'>>;
    describeJobFlows: (params: ParamsFrom<'describeJobFlows', Record<string, never>>) => Promise<ReturnTypeFrom<'describeJobFlows'>>;
    describeNotebookExecution: (params: ParamsFrom<'describeNotebookExecution', Record<string, never>>) => Promise<ReturnTypeFrom<'describeNotebookExecution'>>;
    describeReleaseLabel: (params: ParamsFrom<'describeReleaseLabel', Record<string, never>>) => Promise<ReturnTypeFrom<'describeReleaseLabel'>>;
    describeSecurityConfiguration: (params: ParamsFrom<'describeSecurityConfiguration', Record<string, never>>) => Promise<ReturnTypeFrom<'describeSecurityConfiguration'>>;
    describeStep: (params: ParamsFrom<'describeStep', Record<string, never>>) => Promise<ReturnTypeFrom<'describeStep'>>;
    describeStudio: (params: ParamsFrom<'describeStudio', Record<string, never>>) => Promise<ReturnTypeFrom<'describeStudio'>>;
    getAutoTerminationPolicy: (params: ParamsFrom<'getAutoTerminationPolicy', Record<string, never>>) => Promise<ReturnTypeFrom<'getAutoTerminationPolicy'>>;
    getBlockPublicAccessConfiguration: (params: ParamsFrom<'getBlockPublicAccessConfiguration', Record<string, never>>) => Promise<ReturnTypeFrom<'getBlockPublicAccessConfiguration'>>;
    getManagedScalingPolicy: (params: ParamsFrom<'getManagedScalingPolicy', Record<string, never>>) => Promise<ReturnTypeFrom<'getManagedScalingPolicy'>>;
    getStudioSessionMapping: (params: ParamsFrom<'getStudioSessionMapping', Record<string, never>>) => Promise<ReturnTypeFrom<'getStudioSessionMapping'>>;
    listBootstrapActions(params: {
        [K in keyof ParamsFrom<'listBootstrapActions', {
            next?: string;
        }>]: ParamsFrom<'listBootstrapActions', {
            next?: string;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'listBootstrapActions'>]-?: ReturnTypeFrom<'listBootstrapActions'>[K];
        }['BootstrapActions'];
    }>;
    listClusters(params: {
        [K in keyof ParamsFrom<'listClusters', {
            next?: string;
        }>]: ParamsFrom<'listClusters', {
            next?: string;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'listClusters'>]-?: ReturnTypeFrom<'listClusters'>[K];
        }['Clusters'];
    }>;
    listInstanceFleets(params: {
        [K in keyof ParamsFrom<'listInstanceFleets', {
            next?: string;
        }>]: ParamsFrom<'listInstanceFleets', {
            next?: string;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'listInstanceFleets'>]-?: ReturnTypeFrom<'listInstanceFleets'>[K];
        }['InstanceFleets'];
    }>;
    listInstanceGroups(params: {
        [K in keyof ParamsFrom<'listInstanceGroups', {
            next?: string;
        }>]: ParamsFrom<'listInstanceGroups', {
            next?: string;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'listInstanceGroups'>]-?: ReturnTypeFrom<'listInstanceGroups'>[K];
        }['InstanceGroups'];
    }>;
    listInstances(params: {
        [K in keyof ParamsFrom<'listInstances', {
            next?: string;
        }>]: ParamsFrom<'listInstances', {
            next?: string;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'listInstances'>]-?: ReturnTypeFrom<'listInstances'>[K];
        }['Instances'];
    }>;
    listNotebookExecutions(params: {
        [K in keyof ParamsFrom<'listNotebookExecutions', {
            next?: string;
        }>]: ParamsFrom<'listNotebookExecutions', {
            next?: string;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'listNotebookExecutions'>]-?: ReturnTypeFrom<'listNotebookExecutions'>[K];
        }['NotebookExecutions'];
    }>;
    listReleaseLabels: (params: ParamsFrom<'listReleaseLabels', Record<string, never>>) => Promise<ReturnTypeFrom<'listReleaseLabels'>>;
    listSecurityConfigurations(params: {
        [K in keyof ParamsFrom<'listSecurityConfigurations', {
            next?: string;
        }>]: ParamsFrom<'listSecurityConfigurations', {
            next?: string;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'listSecurityConfigurations'>]-?: ReturnTypeFrom<'listSecurityConfigurations'>[K];
        }['SecurityConfigurations'];
    }>;
    listSteps(params: {
        [K in keyof ParamsFrom<'listSteps', {
            next?: string;
        }>]: ParamsFrom<'listSteps', {
            next?: string;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'listSteps'>]-?: ReturnTypeFrom<'listSteps'>[K];
        }['Steps'];
    }>;
    listStudioSessionMappings(params: {
        [K in keyof ParamsFrom<'listStudioSessionMappings', {
            next?: string;
        }>]: ParamsFrom<'listStudioSessionMappings', {
            next?: string;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'listStudioSessionMappings'>]-?: ReturnTypeFrom<'listStudioSessionMappings'>[K];
        }['SessionMappings'];
    }>;
    listStudios(params: {
        [K in keyof ParamsFrom<'listStudios', {
            next?: string;
        }>]: ParamsFrom<'listStudios', {
            next?: string;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'listStudios'>]-?: ReturnTypeFrom<'listStudios'>[K];
        }['Studios'];
    }>;
    modifyCluster: (params: ParamsFrom<'modifyCluster', Record<string, never>>) => Promise<ReturnTypeFrom<'modifyCluster'>>;
    modifyInstanceFleet: (params: ParamsFrom<'modifyInstanceFleet', Record<string, never>>) => Promise<ReturnTypeFrom<'modifyInstanceFleet'>>;
    modifyInstanceGroups: (params: ParamsFrom<'modifyInstanceGroups', Record<string, never>>) => Promise<ReturnTypeFrom<'modifyInstanceGroups'>>;
    putAutoScalingPolicy: (params: ParamsFrom<'putAutoScalingPolicy', Record<string, never>>) => Promise<ReturnTypeFrom<'putAutoScalingPolicy'>>;
    putAutoTerminationPolicy: (params: ParamsFrom<'putAutoTerminationPolicy', Record<string, never>>) => Promise<ReturnTypeFrom<'putAutoTerminationPolicy'>>;
    putBlockPublicAccessConfiguration: (params: ParamsFrom<'putBlockPublicAccessConfiguration', Record<string, never>>) => Promise<ReturnTypeFrom<'putBlockPublicAccessConfiguration'>>;
    putManagedScalingPolicy: (params: ParamsFrom<'putManagedScalingPolicy', Record<string, never>>) => Promise<ReturnTypeFrom<'putManagedScalingPolicy'>>;
    removeAutoScalingPolicy: (params: ParamsFrom<'removeAutoScalingPolicy', Record<string, never>>) => Promise<ReturnTypeFrom<'removeAutoScalingPolicy'>>;
    removeAutoTerminationPolicy: (params: ParamsFrom<'removeAutoTerminationPolicy', Record<string, never>>) => Promise<ReturnTypeFrom<'removeAutoTerminationPolicy'>>;
    removeManagedScalingPolicy: (params: ParamsFrom<'removeManagedScalingPolicy', Record<string, never>>) => Promise<ReturnTypeFrom<'removeManagedScalingPolicy'>>;
    removeTags: (params: ParamsFrom<'removeTags', Record<string, never>>) => Promise<ReturnTypeFrom<'removeTags'>>;
    runJobFlow: (params: ParamsFrom<'runJobFlow', Record<string, never>>) => Promise<ReturnTypeFrom<'runJobFlow'>>;
    setTerminationProtection: (params: ParamsFrom<'setTerminationProtection', Record<string, never>>) => Promise<ReturnTypeFrom<'setTerminationProtection'>>;
    setVisibleToAllUsers: (params: ParamsFrom<'setVisibleToAllUsers', Record<string, never>>) => Promise<ReturnTypeFrom<'setVisibleToAllUsers'>>;
    startNotebookExecution: (params: ParamsFrom<'startNotebookExecution', Record<string, never>>) => Promise<ReturnTypeFrom<'startNotebookExecution'>>;
    stopNotebookExecution: (params: ParamsFrom<'stopNotebookExecution', Record<string, never>>) => Promise<ReturnTypeFrom<'stopNotebookExecution'>>;
    terminateJobFlows: (params: ParamsFrom<'terminateJobFlows', Record<string, never>>) => Promise<ReturnTypeFrom<'terminateJobFlows'>>;
    updateStudio: (params: ParamsFrom<'updateStudio', Record<string, never>>) => Promise<ReturnTypeFrom<'updateStudio'>>;
    updateStudioSessionMapping: (params: ParamsFrom<'updateStudioSessionMapping', Record<string, never>>) => Promise<ReturnTypeFrom<'updateStudioSessionMapping'>>;
    static fromClient(client: AWSEMR): EMR;
    static client(options?: AWSEMR.Types.ClientConfiguration): EMR;
}
export {};
