import { EggEnvType } from "egg"; import { CronOptions } from "egg/schedule"; //#region src/schedule.d.ts export declare const ScheduleType: { readonly WORKER: "worker"; readonly ALL: "all"; }; export type ScheduleType = (typeof ScheduleType)[keyof typeof ScheduleType]; export declare const IS_SCHEDULE: symbol; export declare const SCHEDULE_PARAMS: symbol; export declare const SCHEDULE_OPTIONS: symbol; export declare const SCHEDULE_METADATA: symbol; export type ScheduleTypeLike = ScheduleType | string; export interface ScheduleParams { type: ScheduleTypeLike; scheduleData: T; } export interface CronParams { cron: string; cronOptions?: CronOptions; } export interface IntervalParams { interval: string | number; } export type CronScheduleParams = ScheduleParams; export type IntervalScheduleParams = ScheduleParams; export interface ScheduleOptions { immediate?: boolean; disable?: boolean; env?: EggEnvType[]; } /** * Schedule subscriber interface * * @example * ```typescript * export class FooSubscriber implements ScheduleSubscriber { * async subscribe(data?: any): Promise { * return 'foo'; * } * } * ``` */ export interface ScheduleSubscriber { subscribe(data?: any): Promise; } //#endregion