import { Request, Backup as AWSBackup } from 'aws-sdk';
declare type ReturnTypeFrom<K extends keyof AWSBackup> = AWSBackup[K] extends (...args: any) => Request<infer R, any> ? R : never;
declare type ParamsFrom<K extends keyof AWSBackup, Extras> = AWSBackup[K] extends {
    (param: infer P, callback: (...args: any) => void): Request<infer R, any>;
    (callback: (...args: any) => void): any;
} ? P & Extras : never;
export declare class Backup {
    private readonly client;
    private constructor();
    readonly signingRegion: undefined;
    readonly service: "backup";
    readonly global: false;
    readonly category: "Storage";
    readonly topLevelCalls: readonly ["listBackupJobs", "listBackupPlanTemplates", "listBackupPlans", "listBackupVaults", "listCopyJobs", "listFrameworks", "listProtectedResources", "listReportJobs", "listReportPlans", "listRestoreJobs"];
    createBackupPlan: (params: ParamsFrom<'createBackupPlan', Record<string, never>>) => Promise<ReturnTypeFrom<'createBackupPlan'>>;
    createBackupSelection: (params: ParamsFrom<'createBackupSelection', Record<string, never>>) => Promise<ReturnTypeFrom<'createBackupSelection'>>;
    createBackupVault: (params: ParamsFrom<'createBackupVault', Record<string, never>>) => Promise<ReturnTypeFrom<'createBackupVault'>>;
    createFramework: (params: ParamsFrom<'createFramework', Record<string, never>>) => Promise<ReturnTypeFrom<'createFramework'>>;
    createReportPlan: (params: ParamsFrom<'createReportPlan', Record<string, never>>) => Promise<ReturnTypeFrom<'createReportPlan'>>;
    deleteBackupPlan: (params: ParamsFrom<'deleteBackupPlan', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteBackupPlan'>>;
    deleteBackupSelection: (params: ParamsFrom<'deleteBackupSelection', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteBackupSelection'>>;
    deleteBackupVault: (params: ParamsFrom<'deleteBackupVault', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteBackupVault'>>;
    deleteBackupVaultAccessPolicy: (params: ParamsFrom<'deleteBackupVaultAccessPolicy', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteBackupVaultAccessPolicy'>>;
    deleteBackupVaultLockConfiguration: (params: ParamsFrom<'deleteBackupVaultLockConfiguration', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteBackupVaultLockConfiguration'>>;
    deleteBackupVaultNotifications: (params: ParamsFrom<'deleteBackupVaultNotifications', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteBackupVaultNotifications'>>;
    deleteFramework: (params: ParamsFrom<'deleteFramework', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteFramework'>>;
    deleteRecoveryPoint: (params: ParamsFrom<'deleteRecoveryPoint', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteRecoveryPoint'>>;
    deleteReportPlan: (params: ParamsFrom<'deleteReportPlan', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteReportPlan'>>;
    describeBackupJob: (params: ParamsFrom<'describeBackupJob', Record<string, never>>) => Promise<ReturnTypeFrom<'describeBackupJob'>>;
    describeBackupVault: (params: ParamsFrom<'describeBackupVault', Record<string, never>>) => Promise<ReturnTypeFrom<'describeBackupVault'>>;
    describeCopyJob: (params: ParamsFrom<'describeCopyJob', Record<string, never>>) => Promise<ReturnTypeFrom<'describeCopyJob'>>;
    describeFramework: (params: ParamsFrom<'describeFramework', Record<string, never>>) => Promise<ReturnTypeFrom<'describeFramework'>>;
    describeGlobalSettings: (params: ParamsFrom<'describeGlobalSettings', Record<string, never>>) => Promise<ReturnTypeFrom<'describeGlobalSettings'>>;
    describeProtectedResource: (params: ParamsFrom<'describeProtectedResource', Record<string, never>>) => Promise<ReturnTypeFrom<'describeProtectedResource'>>;
    describeRecoveryPoint: (params: ParamsFrom<'describeRecoveryPoint', Record<string, never>>) => Promise<ReturnTypeFrom<'describeRecoveryPoint'>>;
    describeRegionSettings: (params: ParamsFrom<'describeRegionSettings', Record<string, never>>) => Promise<ReturnTypeFrom<'describeRegionSettings'>>;
    describeReportJob: (params: ParamsFrom<'describeReportJob', Record<string, never>>) => Promise<ReturnTypeFrom<'describeReportJob'>>;
    describeReportPlan: (params: ParamsFrom<'describeReportPlan', Record<string, never>>) => Promise<ReturnTypeFrom<'describeReportPlan'>>;
    describeRestoreJob: (params: ParamsFrom<'describeRestoreJob', Record<string, never>>) => Promise<ReturnTypeFrom<'describeRestoreJob'>>;
    disassociateRecoveryPoint: (params: ParamsFrom<'disassociateRecoveryPoint', Record<string, never>>) => Promise<ReturnTypeFrom<'disassociateRecoveryPoint'>>;
    exportBackupPlanTemplate: (params: ParamsFrom<'exportBackupPlanTemplate', Record<string, never>>) => Promise<ReturnTypeFrom<'exportBackupPlanTemplate'>>;
    getBackupPlan: (params: ParamsFrom<'getBackupPlan', Record<string, never>>) => Promise<ReturnTypeFrom<'getBackupPlan'>>;
    getBackupPlanFromJSON: (params: ParamsFrom<'getBackupPlanFromJSON', Record<string, never>>) => Promise<ReturnTypeFrom<'getBackupPlanFromJSON'>>;
    getBackupPlanFromTemplate: (params: ParamsFrom<'getBackupPlanFromTemplate', Record<string, never>>) => Promise<ReturnTypeFrom<'getBackupPlanFromTemplate'>>;
    getBackupSelection: (params: ParamsFrom<'getBackupSelection', Record<string, never>>) => Promise<ReturnTypeFrom<'getBackupSelection'>>;
    getBackupVaultAccessPolicy: (params: ParamsFrom<'getBackupVaultAccessPolicy', Record<string, never>>) => Promise<ReturnTypeFrom<'getBackupVaultAccessPolicy'>>;
    getBackupVaultNotifications: (params: ParamsFrom<'getBackupVaultNotifications', Record<string, never>>) => Promise<ReturnTypeFrom<'getBackupVaultNotifications'>>;
    getRecoveryPointRestoreMetadata: (params: ParamsFrom<'getRecoveryPointRestoreMetadata', Record<string, never>>) => Promise<ReturnTypeFrom<'getRecoveryPointRestoreMetadata'>>;
    getSupportedResourceTypes: (params: ParamsFrom<'getSupportedResourceTypes', Record<string, never>>) => Promise<ReturnTypeFrom<'getSupportedResourceTypes'>>;
    listBackupJobs(params: {
        [K in keyof ParamsFrom<'listBackupJobs', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'listBackupJobs', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'listBackupJobs'>]-?: ReturnTypeFrom<'listBackupJobs'>[K];
        }['BackupJobs'];
    }>;
    listBackupPlanTemplates(params: {
        [K in keyof ParamsFrom<'listBackupPlanTemplates', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'listBackupPlanTemplates', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'listBackupPlanTemplates'>]-?: ReturnTypeFrom<'listBackupPlanTemplates'>[K];
        }['BackupPlanTemplatesList'];
    }>;
    listBackupPlanVersions(params: {
        [K in keyof ParamsFrom<'listBackupPlanVersions', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'listBackupPlanVersions', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'listBackupPlanVersions'>]-?: ReturnTypeFrom<'listBackupPlanVersions'>[K];
        }['BackupPlanVersionsList'];
    }>;
    listBackupPlans(params: {
        [K in keyof ParamsFrom<'listBackupPlans', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'listBackupPlans', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'listBackupPlans'>]-?: ReturnTypeFrom<'listBackupPlans'>[K];
        }['BackupPlansList'];
    }>;
    listBackupSelections(params: {
        [K in keyof ParamsFrom<'listBackupSelections', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'listBackupSelections', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'listBackupSelections'>]-?: ReturnTypeFrom<'listBackupSelections'>[K];
        }['BackupSelectionsList'];
    }>;
    listBackupVaults(params: {
        [K in keyof ParamsFrom<'listBackupVaults', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'listBackupVaults', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'listBackupVaults'>]-?: ReturnTypeFrom<'listBackupVaults'>[K];
        }['BackupVaultList'];
    }>;
    listCopyJobs(params: {
        [K in keyof ParamsFrom<'listCopyJobs', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'listCopyJobs', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'listCopyJobs'>]-?: ReturnTypeFrom<'listCopyJobs'>[K];
        }['CopyJobs'];
    }>;
    listFrameworks: (params: ParamsFrom<'listFrameworks', Record<string, never>>) => Promise<ReturnTypeFrom<'listFrameworks'>>;
    listProtectedResources(params: {
        [K in keyof ParamsFrom<'listProtectedResources', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'listProtectedResources', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'listProtectedResources'>]-?: ReturnTypeFrom<'listProtectedResources'>[K];
        }['Results'];
    }>;
    listRecoveryPointsByBackupVault(params: {
        [K in keyof ParamsFrom<'listRecoveryPointsByBackupVault', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'listRecoveryPointsByBackupVault', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'listRecoveryPointsByBackupVault'>]-?: ReturnTypeFrom<'listRecoveryPointsByBackupVault'>[K];
        }['RecoveryPoints'];
    }>;
    listRecoveryPointsByResource(params: {
        [K in keyof ParamsFrom<'listRecoveryPointsByResource', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'listRecoveryPointsByResource', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'listRecoveryPointsByResource'>]-?: ReturnTypeFrom<'listRecoveryPointsByResource'>[K];
        }['RecoveryPoints'];
    }>;
    listReportJobs: (params: ParamsFrom<'listReportJobs', Record<string, never>>) => Promise<ReturnTypeFrom<'listReportJobs'>>;
    listReportPlans: (params: ParamsFrom<'listReportPlans', Record<string, never>>) => Promise<ReturnTypeFrom<'listReportPlans'>>;
    listRestoreJobs(params: {
        [K in keyof ParamsFrom<'listRestoreJobs', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'listRestoreJobs', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'listRestoreJobs'>]-?: ReturnTypeFrom<'listRestoreJobs'>[K];
        }['RestoreJobs'];
    }>;
    listTags: (params: ParamsFrom<'listTags', Record<string, never>>) => Promise<ReturnTypeFrom<'listTags'>>;
    putBackupVaultAccessPolicy: (params: ParamsFrom<'putBackupVaultAccessPolicy', Record<string, never>>) => Promise<ReturnTypeFrom<'putBackupVaultAccessPolicy'>>;
    putBackupVaultLockConfiguration: (params: ParamsFrom<'putBackupVaultLockConfiguration', Record<string, never>>) => Promise<ReturnTypeFrom<'putBackupVaultLockConfiguration'>>;
    putBackupVaultNotifications: (params: ParamsFrom<'putBackupVaultNotifications', Record<string, never>>) => Promise<ReturnTypeFrom<'putBackupVaultNotifications'>>;
    startBackupJob: (params: ParamsFrom<'startBackupJob', Record<string, never>>) => Promise<ReturnTypeFrom<'startBackupJob'>>;
    startCopyJob: (params: ParamsFrom<'startCopyJob', Record<string, never>>) => Promise<ReturnTypeFrom<'startCopyJob'>>;
    startReportJob: (params: ParamsFrom<'startReportJob', Record<string, never>>) => Promise<ReturnTypeFrom<'startReportJob'>>;
    startRestoreJob: (params: ParamsFrom<'startRestoreJob', Record<string, never>>) => Promise<ReturnTypeFrom<'startRestoreJob'>>;
    stopBackupJob: (params: ParamsFrom<'stopBackupJob', Record<string, never>>) => Promise<ReturnTypeFrom<'stopBackupJob'>>;
    tagResource: (params: ParamsFrom<'tagResource', Record<string, never>>) => Promise<ReturnTypeFrom<'tagResource'>>;
    untagResource: (params: ParamsFrom<'untagResource', Record<string, never>>) => Promise<ReturnTypeFrom<'untagResource'>>;
    updateBackupPlan: (params: ParamsFrom<'updateBackupPlan', Record<string, never>>) => Promise<ReturnTypeFrom<'updateBackupPlan'>>;
    updateFramework: (params: ParamsFrom<'updateFramework', Record<string, never>>) => Promise<ReturnTypeFrom<'updateFramework'>>;
    updateGlobalSettings: (params: ParamsFrom<'updateGlobalSettings', Record<string, never>>) => Promise<ReturnTypeFrom<'updateGlobalSettings'>>;
    updateRecoveryPointLifecycle: (params: ParamsFrom<'updateRecoveryPointLifecycle', Record<string, never>>) => Promise<ReturnTypeFrom<'updateRecoveryPointLifecycle'>>;
    updateRegionSettings: (params: ParamsFrom<'updateRegionSettings', Record<string, never>>) => Promise<ReturnTypeFrom<'updateRegionSettings'>>;
    updateReportPlan: (params: ParamsFrom<'updateReportPlan', Record<string, never>>) => Promise<ReturnTypeFrom<'updateReportPlan'>>;
    static fromClient(client: AWSBackup): Backup;
    static client(options?: AWSBackup.Types.ClientConfiguration): Backup;
}
export {};
