import { Request, Batch as AWSBatch } from 'aws-sdk';
declare type ReturnTypeFrom<K extends keyof AWSBatch> = AWSBatch[K] extends (...args: any) => Request<infer R, any> ? R : never;
declare type ParamsFrom<K extends keyof AWSBatch, Extras> = AWSBatch[K] extends {
    (param: infer P, callback: (...args: any) => void): Request<infer R, any>;
    (callback: (...args: any) => void): any;
} ? P & Extras : never;
export declare class Batch {
    private readonly client;
    private constructor();
    readonly signingRegion: undefined;
    readonly service: "batch";
    readonly global: false;
    readonly category: "Management and Governance";
    readonly topLevelCalls: readonly ["describeComputeEnvironments", "describeJobDefinitions", "describeJobQueues", "listJobs", "listSchedulingPolicies"];
    cancelJob: (params: ParamsFrom<'cancelJob', Record<string, never>>) => Promise<ReturnTypeFrom<'cancelJob'>>;
    createComputeEnvironment: (params: ParamsFrom<'createComputeEnvironment', Record<string, never>>) => Promise<ReturnTypeFrom<'createComputeEnvironment'>>;
    createJobQueue: (params: ParamsFrom<'createJobQueue', Record<string, never>>) => Promise<ReturnTypeFrom<'createJobQueue'>>;
    createSchedulingPolicy: (params: ParamsFrom<'createSchedulingPolicy', Record<string, never>>) => Promise<ReturnTypeFrom<'createSchedulingPolicy'>>;
    deleteComputeEnvironment: (params: ParamsFrom<'deleteComputeEnvironment', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteComputeEnvironment'>>;
    deleteJobQueue: (params: ParamsFrom<'deleteJobQueue', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteJobQueue'>>;
    deleteSchedulingPolicy: (params: ParamsFrom<'deleteSchedulingPolicy', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteSchedulingPolicy'>>;
    deregisterJobDefinition: (params: ParamsFrom<'deregisterJobDefinition', Record<string, never>>) => Promise<ReturnTypeFrom<'deregisterJobDefinition'>>;
    describeComputeEnvironments(params: {
        [K in keyof ParamsFrom<'describeComputeEnvironments', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'describeComputeEnvironments', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'describeComputeEnvironments'>]-?: ReturnTypeFrom<'describeComputeEnvironments'>[K];
        }['computeEnvironments'];
    }>;
    describeJobDefinitions(params: {
        [K in keyof ParamsFrom<'describeJobDefinitions', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'describeJobDefinitions', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'describeJobDefinitions'>]-?: ReturnTypeFrom<'describeJobDefinitions'>[K];
        }['jobDefinitions'];
    }>;
    describeJobQueues(params: {
        [K in keyof ParamsFrom<'describeJobQueues', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'describeJobQueues', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'describeJobQueues'>]-?: ReturnTypeFrom<'describeJobQueues'>[K];
        }['jobQueues'];
    }>;
    describeJobs: (params: ParamsFrom<'describeJobs', Record<string, never>>) => Promise<ReturnTypeFrom<'describeJobs'>>;
    describeSchedulingPolicies: (params: ParamsFrom<'describeSchedulingPolicies', Record<string, never>>) => Promise<ReturnTypeFrom<'describeSchedulingPolicies'>>;
    listJobs(params: {
        [K in keyof ParamsFrom<'listJobs', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'listJobs', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'listJobs'>]-?: ReturnTypeFrom<'listJobs'>[K];
        }['jobSummaryList'];
    }>;
    listSchedulingPolicies(params: {
        [K in keyof ParamsFrom<'listSchedulingPolicies', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'listSchedulingPolicies', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'listSchedulingPolicies'>]-?: ReturnTypeFrom<'listSchedulingPolicies'>[K];
        }['schedulingPolicies'];
    }>;
    listTagsForResource: (params: ParamsFrom<'listTagsForResource', Record<string, never>>) => Promise<ReturnTypeFrom<'listTagsForResource'>>;
    registerJobDefinition: (params: ParamsFrom<'registerJobDefinition', Record<string, never>>) => Promise<ReturnTypeFrom<'registerJobDefinition'>>;
    submitJob: (params: ParamsFrom<'submitJob', Record<string, never>>) => Promise<ReturnTypeFrom<'submitJob'>>;
    tagResource: (params: ParamsFrom<'tagResource', Record<string, never>>) => Promise<ReturnTypeFrom<'tagResource'>>;
    terminateJob: (params: ParamsFrom<'terminateJob', Record<string, never>>) => Promise<ReturnTypeFrom<'terminateJob'>>;
    untagResource: (params: ParamsFrom<'untagResource', Record<string, never>>) => Promise<ReturnTypeFrom<'untagResource'>>;
    updateComputeEnvironment: (params: ParamsFrom<'updateComputeEnvironment', Record<string, never>>) => Promise<ReturnTypeFrom<'updateComputeEnvironment'>>;
    updateJobQueue: (params: ParamsFrom<'updateJobQueue', Record<string, never>>) => Promise<ReturnTypeFrom<'updateJobQueue'>>;
    updateSchedulingPolicy: (params: ParamsFrom<'updateSchedulingPolicy', Record<string, never>>) => Promise<ReturnTypeFrom<'updateSchedulingPolicy'>>;
    static fromClient(client: AWSBatch): Batch;
    static client(options?: AWSBatch.Types.ClientConfiguration): Batch;
}
export {};
