/**
 * MCP Server Types and Interfaces
 * Defines the structure for Model Context Protocol integration
 */
export interface MCPConfig {
    apiBaseUrl: string;
    supabaseUrl: string;
    supabaseKey: string;
    defaultTimeout?: number;
}
export interface MCPToolResult {
    content: Array<{
        type: 'text';
        text: string;
    }>;
    isError?: boolean;
}
export interface MCPTool {
    type: 'call_tool';
    name: string;
    description: string;
    inputSchema: {
        type: 'object';
        properties: Record<string, any>;
        required?: string[];
    };
    handler: (args: any) => Promise<MCPToolResult>;
}
export interface BottleneckSchema {
    id: string;
    title: string;
    slug: string;
    description: string;
    tags: string[];
    is_public: boolean;
    created_at: string;
    updated_at: string;
    author_id: string;
    organization_id?: string;
    file_attachments?: FileAttachment[];
}
export interface FileAttachment {
    id: string;
    filename: string;
    original_filename: string;
    file_path: string;
    bucket_name: string;
    file_type: string;
    file_size: number;
    mime_type: string;
    upload_type: string;
    description?: string;
    metadata?: any;
    is_public: boolean;
    processing_status: string;
    created_at: string;
}
export interface SearchFilters {
    tags?: string[];
    author_id?: string;
    organization_id?: string;
    is_public?: boolean;
    approval_status?: 'approved' | 'pending' | 'rejected' | 'draft';
    include_unapproved?: boolean;
    created_after?: string;
    created_before?: string;
    has_attachments?: boolean;
}
export interface PaginationParams {
    page?: number;
    limit?: number;
    offset?: number;
}
export interface APIResponse<T = any> {
    success: boolean;
    data?: T | null;
    error?: string | null;
    message?: string;
    pagination?: {
        page: number;
        limit: number;
        total: number;
        hasMore: boolean;
    };
}
export interface CreateBottleneckData {
    title: string;
    description: string;
    tags?: string[];
    is_public?: boolean;
    organization_id?: string;
}
export interface UpdateBottleneckData {
    title?: string;
    description?: string;
    tags?: string[];
    is_public?: boolean;
    organization_id?: string;
}
export interface FileUploadData {
    file: File | Buffer;
    filename: string;
    card_id: string;
    upload_type: 'attachment' | 'research_data' | 'image' | 'reference_doc';
    description?: string;
    is_public?: boolean;
}
export interface ValidationError {
    field: string;
    message: string;
    code: string;
}
export interface ValidationResult {
    valid: boolean;
    errors: ValidationError[];
    warnings?: ValidationError[];
}
//# sourceMappingURL=mcp.d.ts.map