/**
 * Pure, unit-testable helpers for the Routines dashboard's agent context + tools.
 *
 * 🚨 SAFETY BOUNDARY 🚨
 * The Routines surface exposes ONLY navigation / filter / search / select / refresh
 * tools to the agent. DELIBERATELY NOT exposed (mutations stay human-driven in the
 * UI): create-SAVE / edit-SAVE (the agent may only OPEN the editor), delete,
 * pause/resume (Status writes), and run-now (queues a real dispatcher execution).
 * Context exposes only counts, active filters, view state, and bounded display
 * names — never payloads, messages, or recipient emails.
 */
/** Cap applied to every published name list. */
export declare const USER_ROUTINE_NAME_LIST_CAP = 25;
/** Minimal routine shape the pure helpers operate on. */
export interface RoutineSummaryRow {
    ID: string;
    Name: string;
    Status: string;
}
/** State snapshot the dashboard passes to the context builder. */
export interface UserRoutinesAgentState {
    ActiveView: 'list' | 'editor' | 'history';
    SearchText: string;
    StatusFilter: string;
    TotalCount: number;
    FilteredCount: number;
    SelectedRoutineID: string | null;
    Routines: RoutineSummaryRow[];
}
/** Bounded, secret-free context published via SetAgentContext. */
export declare function buildUserRoutinesAgentContext(state: UserRoutinesAgentState): Record<string, unknown>;
/**
 * Tolerant routine resolver: exact ID → exact name → partial name contains
 * (all case-insensitive). Returns a structured failure listing available names
 * (bounded) on a miss.
 */
export declare function resolveRoutineByIDOrName(routines: RoutineSummaryRow[], rawRef: unknown): {
    ok: true;
    value: RoutineSummaryRow;
} | {
    ok: false;
    error: string;
};
//# sourceMappingURL=user-routines-agent-context.d.ts.map