import { type CliEffectKind } from '@nexusclaw/shared'; export declare const CLI_TASK_ROUTE_SCHEMA_VERSION: "nexusclaw.cli-task-route/v1"; export interface CliTaskRouteV1 { readonly routeId: string; readonly goalPatterns: ReadonlyArray; readonly phase: 'inspect' | 'prepare'; readonly commandId: string; readonly modeId: string; readonly commandPath: string; readonly argvTemplate: string; readonly preconditions: ReadonlyArray; readonly requiredEvidence: ReadonlyArray; readonly allowedEffects: ReadonlyArray; readonly stopPolicy: { readonly successEvidence: string; readonly nonRetryableErrors: ReadonlyArray; readonly maxNetworkRetries: 1; readonly noProgressLimit: 2; }; } export interface CliTaskRoutePlanV1 { readonly schemaVersion: typeof CLI_TASK_ROUTE_SCHEMA_VERSION; readonly route: CliTaskRouteV1; readonly contractDigest: `sha256:${string}`; readonly planDigest: `sha256:${string}`; } export type CliTaskRouteFailureCode = 'CLI_ROUTE_NOT_FOUND' | 'CLI_ROUTE_AMBIGUOUS' | 'CLI_ROUTE_REGISTRY_DRIFT'; export type CliTaskRouteResolution = { readonly ok: true; readonly plan: CliTaskRoutePlanV1; } | { readonly ok: false; readonly code: CliTaskRouteFailureCode; readonly message: string; readonly candidates: ReadonlyArray; }; export type CliTaskRoutePatternSource = Pick; export declare function matchTaskRouteCandidates(goal: string, routes?: ReadonlyArray): ReadonlyArray; export declare function resolveTaskRoute(goal: string): CliTaskRouteResolution; export declare function listTaskRoutes(): ReadonlyArray;