/** * Response Mode Utilities * * Client-side utilities for response mode handling in write operations. * Implements MCI-057: Response Modes for Write Operations * * Response modes control the verbosity of create/update operation responses: * - 'full': Complete object (~500 tokens) - default * - 'minimal': id, number, title, message (~50 tokens) * - 'id-only': id and number only (~20 tokens) */ /** * Response mode for write operations */ export type ResponseMode = 'full' | 'minimal' | 'id-only'; /** * Valid response modes */ export declare const RESPONSE_MODES: ResponseMode[]; /** * Minimal response for write operations */ export interface MinimalResponse { id: string; ticketNumber?: number; epicNumber?: number; title: string; message: string; } /** * ID-only response for write operations */ export interface IdOnlyResponse { id: string; ticketNumber?: number; epicNumber?: number; } /** * Check if a value is a valid response mode */ export declare function isValidResponseMode(value: unknown): value is ResponseMode; /** * Parse response mode from tool arguments, defaulting to 'full' * * @param args - Tool arguments object * @returns Validated ResponseMode, defaults to 'full' * * @example * ```typescript * getResponseModeFromArgs({ responseMode: 'minimal' }) // 'minimal' * getResponseModeFromArgs({ responseMode: 'id-only' }) // 'id-only' * getResponseModeFromArgs({}) // 'full' * getResponseModeFromArgs({ responseMode: 'invalid' }) // 'full' (invalid, falls back) * ``` */ export declare function getResponseModeFromArgs(args: Record): ResponseMode; /** * Format a write operation response based on mode. * * This reduces token usage when full details aren't needed: * - 'full': Returns unchanged (~500 tokens) * - 'minimal': Returns id, numbers, title, message (~50 tokens) * - 'id-only': Returns id and numbers only (~20 tokens) * * @param entity - Full entity object from API response * @param mode - Response mode * @param message - Success message for minimal mode * @returns Formatted response based on mode * * @example * ```typescript * // Full mode (default) * formatWriteResponse(ticket, 'full', 'Created') * // Returns: { id, title, status, description, ... } * * // Minimal mode * formatWriteResponse(ticket, 'minimal', 'Ticket created') * // Returns: { id: 'xyz', ticketNumber: 1, title: 'My Ticket', message: 'Ticket created' } * * // ID-only mode * formatWriteResponse(ticket, 'id-only', 'Created') * // Returns: { id: 'xyz', ticketNumber: 1 } * ``` */ export declare function formatWriteResponse(entity: T, mode: ResponseMode, message: string): T | MinimalResponse | IdOnlyResponse; /** * Format multiple write operation responses based on mode. * * @param entities - Array of entity objects * @param mode - Response mode * @param message - Success message template for minimal mode * @returns Array of formatted responses * * @example * ```typescript * formatWriteResponses(tickets, 'minimal', 'Ticket created') * // Returns: [{ id, ticketNumber, title, message }, ...] * ``` */ export declare function formatWriteResponses(entities: T[], mode: ResponseMode, message: string): Array; //# sourceMappingURL=response.d.ts.map