import type { ICloudDatabase } from "../entities";
import type { CronjobRepeat, CronjobRequest, CronjonRepeatCondition, ICronjob } from "../entities/Cronjob";
import type { HiddenBodyKeys } from "../interfaces";
import * as interfaces from "../interfaces";
import { CronjobService } from "../services/CronjobService";
import BaseController from "./BaseController";
export default class CronjobController extends BaseController<ICronjob> {
    service: CronjobService;
    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>;
    /**
     * Schedule a cronjob to be executed at a specific time
     */
    scheduleAt(body: {
        /**
         * Name
         */
        name: string;
        /**
         * HTTP Request information
         */
        request: CronjobRequest;
        /**
         * Scheduled time of the cronjob
         */
        time: Date;
    }, queryParams?: interfaces.IPostQueryParams): Promise<interfaces.ResponseData>;
    /**
     * Schedule a cronjob to be executed repeatedly
     */
    scheduleRepeat(body: {
        /**
         * Name
         */
        name: string;
        /**
         * HTTP Request information
         */
        request: CronjobRequest;
        /**
         * Recurrent job configuration
         */
        repeat: CronjobRepeat;
        /**
         * Recurrent job's conditions
         */
        condition: CronjonRepeatCondition;
    }, queryParams?: interfaces.IPostQueryParams): Promise<interfaces.ResponseData>;
    /**
     * Cancel a cronjob
     */
    cancelCronjob(body: {}, queryParams?: {
        id: string;
    }): Promise<interfaces.ResponseData>;
}
//# sourceMappingURL=CronjobController.d.ts.map