/*!
 * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
 * SPDX-License-Identifier: Apache-2.0
 */
import { ListItemEntry, MynahUI, SingularFormItem } from '@aws/mynah-ui';
import { Button, ListMcpServersResult, McpServerClickResult } from '@aws/language-server-runtimes-types';
import { Messager } from './messager';
export declare const MCP_IDS: {
    DISABLE_SERVER: string;
    DELETE_SERVER: string;
    ENABLE_SERVER: string;
    FIX_SERVER: string;
    OPEN_SERVER: string;
    DETAILS_MENU: string;
    SERVER_CLICK: string;
    ADD_NEW: string;
    REFRESH_LIST: string;
    UPDATE_LIST: string;
    EDIT: string;
    SAVE: string;
    CANCEL: string;
    CHANGE_TRANSPORT: string;
    PERMISSION_CHANGE: string;
    SAVE_PERMISSION_CHANGE: string;
};
export declare const MCP_UI_CONSTANTS: {
    MAX_SERVER_NAME_LENGTH: number;
};
export type McpFilterOption = {
    type: 'textarea' | 'textinput' | 'select' | 'numericinput' | 'radiogroup' | 'list';
    id: string;
    title: string;
    description?: string;
    icon?: string;
    options?: Array<{
        label: string;
        value: string;
    }>;
    mandatory?: boolean;
    value?: ListItemEntry[];
    items?: SingularFormItem[];
};
export type McpListItem = {
    title: string;
    description?: string;
    icon?: string;
    actions?: any[];
    groupActions?: any;
};
export type McpListGroup = {
    groupName?: string;
    children?: McpListItem[];
};
export type McpServerParams = McpServerClickResult & {
    header?: {
        title?: string;
        description?: string;
        status?: any;
        actions?: Button[];
    };
    filterOptions?: McpFilterOption[];
    filterActions?: Button[];
    list?: McpListGroup[];
};
export declare class McpMynahUi {
    private mynahUi;
    private messager;
    private isMcpServersListActive;
    private mcpDetailedList;
    constructor(mynahUi: MynahUI, messager: Messager);
    close(): void;
    /**
     * Processes filter options by converting icons to Mynah icons
     */
    private processFilterOptions;
    /**
     * Processes filter actions by converting icons to Mynah icons
     */
    private processFilterActions;
    /**
     * Processes a list group for the detailed list UI
     */
    private processListGroup;
    /**
     * Creates a detailed list configuration for adding a new MCP server
     */
    private createAddMcpServerDetailedList;
    /**
     * Creates a detailed list configuration for viewing an MCP server
     */
    private createViewMcpServerDetailedList;
    /**
     * Displays the list of MCP servers
     */
    listMcpServers(params: ListMcpServersResult): void;
    /**
     * Creates a detailed list for registry server view
     */
    private createRegistryServerDetailedList;
    /**
     * Creates events for registry server view
     */
    private createRegistryServerEvents;
    /**
     * Creates events for manual MCP server form
     */
    private createManualServerEvents;
    /**
     * Handles adding/editing MCP server (registry or manual)
     */
    private handleAddOrEditServer;
    /**
     * Handles opening MCP server details
     */
    private handleOpenServer;
    /**
     * Handles MCP server click events
     */
    mcpServerClick(params: McpServerClickResult): void;
}
