import type { ICloudDatabase } from "../entities";
import { CloudDatabaseBackupDto } from "../entities";
import type { CronjobRepeat, CronjonRepeatCondition } from "../entities/Cronjob";
import type { HiddenBodyKeys } from "../interfaces";
import * as interfaces from "../interfaces";
import { CloudDatabaseService } from "../services/CloudDatabaseService";
import BaseController from "./BaseController";
export default class CloudDatabaseController extends BaseController<ICloudDatabase> {
    service: CloudDatabaseService;
    constructor();
    read(queryParams?: interfaces.IGetQueryParams): Promise<interfaces.ResponseData>;
    create(body: Omit<ICloudDatabase, keyof HiddenBodyKeys>, queryParams?: interfaces.IPostQueryParams): Promise<interfaces.ResponseData>;
    update(body: Omit<ICloudDatabase, keyof HiddenBodyKeys>, queryParams?: interfaces.IPostQueryParams): Promise<interfaces.ResponseData>;
    delete(queryParams?: interfaces.IDeleteQueryParams): Promise<interfaces.ResponseData>;
    checkConnection(queryParams?: interfaces.IGetQueryParams): Promise<interfaces.ResponseData>;
    backup(body: {
        /**
         * `[OPTIONAL]`
         * Backup name
         */
        name?: string;
    }, queryParams?: {
        /**
         * Cloud Database ID
         */
        id: string;
    }): Promise<interfaces.ResponseData>;
    restore(body: CloudDatabaseBackupDto, queryParams?: {
        /**
         * Cloud Database Backup ID
         */
        id: string;
    }): Promise<interfaces.ResponseData>;
    scheduleAutoBackup(body: {
        /**
         * Recurrent job's configuration
         */
        repeat?: CronjobRepeat;
        /**
         * Recurrent job's conditions
         */
        condition?: CronjonRepeatCondition;
    }, queryParams?: {
        _id: string;
    }): Promise<interfaces.ResponseData>;
}
//# sourceMappingURL=CloudDatabaseController.d.ts.map