/**
 * Action implementations for CLI.2 — `opensquid schedule …`.
 *
 * Split out of `schedule.ts` (file-size budget). Each exported function is a
 * single verb's body; `schedule.ts` wires commander to these via thin
 * `.action(opts => action(...))` bridges. Functions take all I/O via
 * explicit `paths` + `out` + `err` deps so they're testable independently.
 *
 * Imports from: node-cron, ../schedule_nl, ./schedule_state,
 *   ./schedule_render, ./triggers_state, ./triggers_synth.
 * Imported by: src/setup/cli/schedule.ts.
 */
import { type ScheduleRow } from './schedule_state.js';
import type { Event } from '../../runtime/types.js';
export type ScheduleDispatch = (event: Event) => Promise<void> | void;
export interface SchedulePaths {
    packsDir: string;
    userSchedulesPath: string;
    pausedPath: string;
    historyPath: string;
    sessionsDir: string;
}
export interface ActionDeps {
    paths: SchedulePaths;
    out: (s: string) => void;
    err: (s: string) => void;
    isTty: () => boolean;
    now: () => Date;
    dispatch?: ScheduleDispatch;
}
/** Merge pack-declared + user-added schedules into one row set, sorted by
 *  next-fire ascending (nulls last). */
export declare function buildScheduleRows(deps: {
    paths: SchedulePaths;
    now: Date;
}): Promise<ScheduleRow[]>;
export declare function actList(deps: ActionDeps, opts: {
    pack?: string;
    status?: string;
}): Promise<void>;
export declare function actNext(deps: ActionDeps, opts: {
    limit: string;
}): Promise<void>;
export declare function actHistory(deps: ActionDeps, opts: {
    limit: string;
    id?: string;
}): Promise<void>;
export interface AddOpts {
    cron?: string;
    pack: string;
    skill: string;
    costTier?: 'cheap' | 'balanced' | 'premium';
    timezone?: string;
}
export declare function actAdd(deps: ActionDeps, description: string, opts: AddOpts): Promise<void>;
export declare function actRemove(deps: ActionDeps, id: string, opts: {
    yes: boolean;
}): Promise<void>;
export declare function actPauseResume(deps: ActionDeps, verb: 'pause' | 'resume', id: string): Promise<void>;
export declare function actRun(deps: ActionDeps, id: string, opts: {
    yes: boolean;
}): Promise<void>;
//# sourceMappingURL=schedule_actions.d.ts.map