import type { TransportEnum } from '@iblai/iblai-api';
export interface MCPBaseParams {
    org: string;
    userId: string;
}
export interface GetMCPServersParams extends MCPBaseParams {
    authType?: 'none' | 'oauth2' | 'token';
    isEnabled?: boolean;
    isFeatured?: boolean;
    includeGlobal?: boolean;
    mentorUniqueId?: string;
    page?: number;
    pageSize?: number;
    search?: string;
    transport?: TransportEnum;
    url?: string;
}
export interface MCPServerParams extends MCPBaseParams {
    id: number;
}
export interface OAuthServiceData {
    id: number;
    oauth_provider: string;
    oauth_provider_id: number;
    name: string;
    display_name?: string;
    description?: string;
    scope?: string;
    image?: string | null;
    created_at?: string;
    updated_at?: string;
}
export interface MCPServerObjectPermissions {
    delete: boolean;
    write: boolean;
}
export interface MCPServerPermissions {
    field?: Record<string, {
        read?: boolean;
        write: boolean;
        delete?: boolean;
    }>;
    object?: MCPServerObjectPermissions;
}
export interface MCPServer {
    id: number;
    name: string;
    url: string;
    transport: TransportEnum | string;
    description?: string;
    credentials?: string;
    image?: string;
    auth_type?: string;
    auth_scope?: string;
    extra_headers?: Record<string, string>;
    platform?: number;
    platform_key?: string;
    connected_service?: number | null;
    connected_service_summary?: Record<string, unknown> | null;
    oauth_service_data?: OAuthServiceData | null;
    mentor?: string | null;
    created_at: string;
    updated_at?: string;
    permissions?: MCPServerPermissions;
}
export interface PaginatedMCPServerList {
    count: number;
    next: string | null;
    previous: string | null;
    results: MCPServer[];
}
export interface MCPServerRequestBody {
    name: string;
    url: string;
    transport: TransportEnum | string;
    description?: string;
    credentials?: string;
    auth_type?: string;
    auth_scope?: string;
    extra_headers?: Record<string, string>;
    oauth_service?: number | null;
    mentor?: string | null;
}
export interface CreateMCPServerArgs extends MCPBaseParams {
    body?: MCPServerRequestBody;
    formData?: FormData;
}
export interface UpdateMCPServerArgs extends MCPServerParams {
    body?: MCPServerRequestBody;
    formData?: FormData;
}
export interface PartialUpdateMCPServerArgs extends MCPServerParams {
    body?: Partial<MCPServerRequestBody>;
    formData?: FormData;
}
export interface OAuthServiceParams {
    org: string;
}
export interface ConnectedServicesParams extends MCPBaseParams {
}
export interface StartOAuthFlowParams extends MCPBaseParams {
    provider: string;
    service: string;
}
export interface StartOAuthFlowResponse {
    auth_url: string;
}
export interface DisconnectServiceParams extends MCPBaseParams {
    id: number | string;
}
export interface CreateMCPServerConnectionParams extends MCPBaseParams {
    server: number;
    scope: string;
    auth_type: string;
    user?: string;
    connected_service: number;
    mentor?: string | null;
}
export interface PatchMCPServerConnectionParams extends MCPBaseParams {
    id: number;
    mentor?: string | null;
    scope?: string;
    user?: string | null;
}
export interface GetMCPServerConnectionsParams extends MCPBaseParams {
    page?: number;
    pageSize?: number;
}
export interface MCPServerConnection {
    id: number;
    server: number;
    server_name: string;
    scope: string;
    auth_type: string;
    platform: number;
    platform_key: string;
    user: string;
    mentor: string | null;
    connected_service: number | null;
    connected_service_summary: Record<string, unknown> | null;
    credentials: string;
    authorization_scheme: string;
    extra_headers: string;
    is_active: boolean;
    created_at: string;
    updated_at: string;
}
export interface PaginatedMCPServerConnectionList {
    count: number;
    next: string | null;
    previous: string | null;
    results: MCPServerConnection[];
}
export interface ConnectedService {
    id: number;
    provider: string;
    service: string;
    [key: string]: unknown;
}
export interface OAuthFindParams extends MCPBaseParams {
    url: string;
    name?: string;
    callback_url?: string;
}
export interface OAuthFindResponse {
    id: number;
    oauth_provider: string;
    oauth_provider_id: number;
    name: string;
    display_name: string;
    description: string;
    scope: string;
    image: string;
    created_at: string;
    updated_at: string;
}
