import type { CronString } from "../../aws/CustomTypes/CronString";
import type { NaturalNumber } from "../../common/CustomTypes/Numerics";
import type { ResourceBase } from "./Common";
export declare type SchedulerType = 'resource.scheduler';
export interface SchedulerBase extends ResourceBase {
    type: SchedulerType;
}
export declare type Scheduler = Schedule & SchedulerBase;
export interface RateSchedule {
    rate: RatedScheduling;
}
export interface CronSchedule {
    cron: CronString;
}
export declare type Schedule = CronSchedule | RateSchedule;
export interface RatedScheduling {
    unit: TimeUnit;
    amount: NaturalNumber;
}
export declare type TimeUnit = 'days' | 'hours' | 'minutes';
export declare const isTimeUnit: import("@altostra/type-validations").TypeValidation<TimeUnit>;
export declare const isRatedScheduling: import("@altostra/type-validations").ObjectOfTypeValidation<RatedScheduling>;
export declare const isRateSchedule: import("@altostra/type-validations").ObjectOfTypeValidation<RateSchedule>;
export declare const isCronSchedule: import("@altostra/type-validations").ObjectOfTypeValidation<CronSchedule>;
export declare const isSchedule: import("@altostra/type-validations").TypeValidation<Schedule>;
export declare const isScheduler: import("@altostra/type-validations").TypeValidation<Scheduler>;
