import type { Context } from '@deepseek-ai/cordis' export const name: 'dsh-ops-cron' export const inject: string[] export const NS: 'dsh-ops-cron' export interface Config { enabled?: boolean timezone?: string historyLimit?: number overlapPolicy?: 'skip' misfirePolicy?: 'skip' } export function apply(ctx: Context, config?: Config): void export function createHostService(options?: object): object export function makeLiveSessionPort(ctx: object): object export function resolveSessionPlacement(ctx: object, job?: object, deps?: object): { cwd: string, workspace: object | null } export function ownerAllowsForeignCwd(ownerEmpNo: string, uds?: object | null): boolean export const UNASSIGNED_OWNER: '__unassigned__' export const LOCAL_EMP_NO: '__local__' export function isMultiUserIdentity(identity: object | null | undefined): boolean export function localIdentity(overrides?: object): object export function claimUnassignedForViewer(state: object, identity: object, deps?: object): { state: object, changed: boolean } export function jobVisibleToIdentity(job: object, identity: object): boolean export function canViewAllJobs(identity: object): boolean export function assertCanAccessJob(job: object, identity: object): object export function filterJobsForIdentity(jobs: object[], identity: object): object[] export function migrateJobOwners(state: object, deps?: object): { state: object, changed: boolean } export function viewerPayload(identity: object | null): object | null export function preferredNewJobCwd(input?: { viewer?: object | null, sessionCwd?: string }): string export function listWorkspaceChoices(ctx: object): Array<{ id: string, title: string, path: string }> export function listModelChoices(ctx: object): Promise<{ groups: Array<{ provider: string, displayName: string, models: Array<{ id: string, name: string }> }>, current: { provider: string, model: string, reasoningEffort?: string } | null }> export function resolveJobModel(ctx: object, job?: object): Promise<{ provider: string, model: string, reasoningEffort?: string }> export function currentDefaultModel(ctx: object): { provider: string, model: string, reasoningEffort?: string } | null export function normalizeJobModel(input?: object): { provider: string, model: string, reasoningEffort: string } export function callerWorkingDirectory(exec?: object): string export function resolveCreateCwd(args?: object, exec?: object): string export function resolveCreateModel(args?: object, exec?: object): { provider: string, model: string, reasoningEffort: string } export function resolveToolIdentity(exec?: object, service?: object): object | null export function callerModelSelection(exec?: object): { provider: string, model: string, reasoningEffort: string } export function scheduleFromArgs(args?: object, nowMs?: number): { kind: string, at?: string, expr?: string, timezone: string } export function adoptSessionIntoWorkspace(ctx: object, sessionId: string): Promise<{ ok: boolean, attached: boolean, sessionId?: string, cwd?: string | null, workspaceId?: string | null }> export function shouldHideNativeWorkspaceGroup(input: { sessionRowCount: number, visibleSessionCount: number, ungrouped?: boolean, cronLabeled?: boolean }): boolean export function waitForAgentTurn(agent: object, options?: object): Promise export function parseCron(expr: string): object export function nextFire(schedule: object, afterMs: number, timezone?: string): number | null export function decideDispatch(input: object): object export function workspaceVisibleIds(allSessionIds: string[], hiddenSessionIds: string[] | Set, archivedSessionIds?: string[] | Set): string[] export function recordHiddenSession(state: object, sessionId: string): object export function workspaceTitleFromCronFork(title: string): string export function shouldPromoteCronFork(row: object, cronSessionIds: string[] | Set, previousId?: string): boolean export function wrapScheduledPrompt(prompt: string, meta?: object): string export function extractAssistantText(messages: object[], maxChars?: number): string export const TITLE_PREFIX: string export function claimOccurrence(state: object, jobId: string, now: number, trigger: string, policies?: object): object export function executeClaimedRun(state: object, runId: string, deps: object): Promise export function normalizeDelivery(input?: object): { kind: 'dsh' | 'im', botId?: string, targetId?: string } export function normalizeOrigin(input?: object): { kind: 'web' | 'im', sessionId?: string, peer?: object } | null export function resolveCreateDelivery(args?: object, exec?: object, deps?: object): Promise<{ kind: 'dsh' | 'im', botId?: string, targetId?: string }> export function resolveCreateOrigin(args?: object, exec?: object, deps?: object): Promise<{ kind: 'web' | 'im', sessionId?: string, peer?: object } | null> export function resolveMirrorSession(job: object, deps?: object): Promise<{ sessionId: string, via: string } | null> export function resolveCallerPeer(exec?: object, dshIm?: object): Promise export function jobVisibleToPeer(job: object, peer: object): boolean export function formatRunResultBody(job: object, summary?: string, locale?: string): string export function deliverRunToIm(job: object, summary?: string, deps?: object): Promise export function mirrorRunToSession(job: object, summary?: string, deps?: object): Promise export const DEFAULT_LOCALE: 'zh' export const TITLE_PREFIX_EN: string export const MESSAGES: Record> export function normalizeLocale(lang?: unknown): 'zh' | 'en' export function resolveLocale(req?: object | null, identity?: { lang?: string } | null): 'zh' | 'en' export function t(key: string, locale?: string, vars?: Record): string export function apiError(code: string, locale?: string, vars?: Record): { ok: false, error: string, message: string }