/**
 * Common type definitions shared across controllers.
 * These types provide a standard interface for controller interactions.
 * Centralized here to ensure consistency across the codebase.
 */
/**
 * Common pagination information for API responses.
 * This is used for providing consistent pagination details internally.
 * Its formatted representation will be included directly in the content string.
 */
export interface ResponsePagination {
    /**
     * Cursor for the next page of results, if available.
     * This should be passed to subsequent requests to retrieve the next page.
     */
    nextCursor?: string;
    /**
     * Whether more results are available beyond the current page.
     * When true, clients should use the nextCursor to retrieve more results.
     */
    hasMore: boolean;
    /**
     * The number of items in the current result set.
     * This helps clients track how many items they've received.
     */
    count?: number;
    /**
     * The total number of items available across all pages, if known.
     * Note: Not all APIs provide this. Check the specific API/tool documentation.
     */
    total?: number;
    /**
     * Page number for page-based pagination.
     */
    page?: number;
    /**
     * Page size for page-based pagination.
     */
    size?: number;
}
/**
 * Common response structure for controller operations.
 * All controller methods should return this structure.
 */
export interface ControllerResponse {
    /**
     * Formatted content to be displayed to the user.
     * Contains a comprehensive Markdown-formatted string that includes all information:
     * - Primary content (e.g., list items, details)
     * - Any metadata (previously in metadata field)
     * - Pagination information (previously in pagination field)
     */
    content: string;
    /**
     * Optional path to the raw API response file.
     * When the response is truncated, this path allows AI to access the full data.
     */
    rawResponsePath?: string | null;
}
