import type { TodosDrainOptions } from "./types.js"; /** Named route-drain policies keep recurring task routes auditable and replayable. */ export type RoutePolicyId = "repoops-pr-queue" | "oss" | "pilot" | "machine-sync"; export type RoutePolicySafety = "unattended" | "manual-break-glass"; export interface RoutePolicySchedule { every?: string; cron?: string; at?: string; dynamic?: boolean; catchUp?: string; catchUpLimit?: string; overlap?: string; attempts?: string; retryDelay?: string; lease?: string; } export interface RoutePolicyGuard { kind: string; description: string; [key: string]: unknown; } export interface RoutePolicyDefinition { id: RoutePolicyId; title: string; description: string; routeKind: "todos-task"; safety: RoutePolicySafety; source: string; aliases?: string[]; drain: Partial; schedule: RoutePolicySchedule; guards?: RoutePolicyGuard[]; notes?: string[]; requiresExplicitOptions?: Array; } export interface RoutePolicyRender { policy: RoutePolicyDefinition; drain: Partial; schedule: RoutePolicySchedule; args: string[]; command: string; } export declare function listRoutePolicies(): RoutePolicyDefinition[]; export declare function getRoutePolicy(idOrAlias: string | undefined): RoutePolicyDefinition | undefined; export declare function applyRoutePolicyToDrainOptions(opts: T, applyOpts?: { requireExplicitSafety?: boolean; }): T; export declare function applyRoutePolicyToScheduleOptions>(opts: T): T; export declare function routePolicyEvidenceFromOptions(opts: TodosDrainOptions): Record | undefined; export declare function renderRoutePolicy(idOrAlias: string): RoutePolicyRender; export declare function validateRoutePolicy(idOrAlias: string): RoutePolicyRender;