/**
 * IDE Integration Foundation - Phase 1D
 *
 * VS Code extension foundation, language server protocol implementation,
 * and real-time validation feedback system.
 */
/**
 * Language Server Protocol message types
 */
export interface LSPDiagnostic {
    range: {
        start: {
            line: number;
            character: number;
        };
        end: {
            line: number;
            character: number;
        };
    };
    severity: 1 | 2 | 3 | 4;
    code?: string | number;
    source: string;
    message: string;
    relatedInformation?: {
        location: {
            uri: string;
            range: {
                start: {
                    line: number;
                    character: number;
                };
                end: {
                    line: number;
                    character: number;
                };
            };
        };
        message: string;
    }[];
    data?: any;
}
/**
 * Code Action for IDE quick fixes
 */
export interface LSPCodeAction {
    title: string;
    kind: string;
    diagnostics?: LSPDiagnostic[];
    edit?: {
        changes?: Record<string, {
            range: {
                start: {
                    line: number;
                    character: number;
                };
                end: {
                    line: number;
                    character: number;
                };
            };
            newText: string;
        }[]>;
    };
    command?: {
        title: string;
        command: string;
        arguments?: any[];
    };
}
/**
 * Hover information for IntelliSense
 */
export interface LSPHover {
    contents: {
        kind: 'markdown' | 'plaintext';
        value: string;
    };
    range?: {
        start: {
            line: number;
            character: number;
        };
        end: {
            line: number;
            character: number;
        };
    };
}
/**
 * Completion item for autocomplete
 */
export interface LSPCompletionItem {
    label: string;
    kind: number;
    detail?: string;
    documentation?: {
        kind: 'markdown' | 'plaintext';
        value: string;
    };
    insertText?: string;
    insertTextFormat?: 1 | 2;
    textEdit?: {
        range: {
            start: {
                line: number;
                character: number;
            };
            end: {
                line: number;
                character: number;
            };
        };
        newText: string;
    };
    additionalTextEdits?: {
        range: {
            start: {
                line: number;
                character: number;
            };
            end: {
                line: number;
                character: number;
            };
        };
        newText: string;
    }[];
    command?: {
        title: string;
        command: string;
        arguments?: any[];
    };
}
/**
 * IDE Integration configuration
 */
export interface IDEIntegrationConfig {
    enableLanguageServer: boolean;
    serverPort: number;
    enableRealTimeDiagnostics: boolean;
    diagnosticDelay: number;
    maxDiagnostics: number;
    enableHoverInfo: boolean;
    enableAutoComplete: boolean;
    enableSignatureHelp: boolean;
    enableQuickFixes: boolean;
    enableCodeActions: boolean;
    enableRefactoring: boolean;
    enableStatusBar: boolean;
    enableOutputChannel: boolean;
    enableWebview: boolean;
}
/**
 * Real-time validation diagnostics provider
 */
export declare class ValidationDiagnosticsProvider {
    private diagnostics;
    private listeners;
    /**
     * Validate document and return diagnostics
     */
    validateDocument(uri: string, text: string): Promise<LSPDiagnostic[]>;
    /**
     * Detect common TachUI errors in a line of code
     */
    private detectCommonErrors;
    /**
     * Get diagnostics for a document
     */
    getDiagnostics(uri: string): LSPDiagnostic[];
    /**
     * Clear diagnostics for a document
     */
    clearDiagnostics(uri: string): void;
    /**
     * Add diagnostic listener
     */
    onDiagnosticsChanged(listener: (uri: string, diagnostics: LSPDiagnostic[]) => void): void;
    /**
     * Notify all listeners of diagnostic changes
     */
    private notifyListeners;
}
/**
 * Code actions provider for quick fixes
 */
export declare class CodeActionsProvider {
    /**
     * Get code actions for a diagnostic
     */
    getCodeActions(diagnostic: LSPDiagnostic, uri: string, _text: string): LSPCodeAction[];
}
/**
 * Hover information provider
 */
export declare class HoverProvider {
    /**
     * Get hover information for a position
     */
    getHover(_uri: string, text: string, line: number, character: number): LSPHover | null;
    /**
     * Detect component at cursor position
     */
    private detectComponentAtPosition;
    /**
     * Detect modifier at cursor position
     */
    private detectModifierAtPosition;
    /**
     * Create hover information for component
     */
    private createComponentHover;
    /**
     * Create hover information for modifier
     */
    private createModifierHover;
    /**
     * Get component documentation
     */
    private getComponentDocumentation;
    /**
     * Get modifier documentation
     */
    private getModifierDocumentation;
}
/**
 * Completion provider for autocomplete
 */
export declare class CompletionProvider {
    /**
     * Get completion items for a position
     */
    getCompletions(_uri: string, text: string, line: number, character: number): LSPCompletionItem[];
    /**
     * Check if we're in a component context
     */
    private isComponentContext;
    /**
     * Check if we're in a modifier context
     */
    private isModifierContext;
    /**
     * Get component completion items
     */
    private getComponentCompletions;
    /**
     * Get modifier completion items
     */
    private getModifierCompletions;
}
/**
 * VS Code integration manager
 */
export declare class VSCodeIntegration {
    private diagnosticsProvider;
    private codeActionsProvider;
    private hoverProvider;
    private completionProvider;
    /**
     * Initialize VS Code integration
     */
    initialize(): void;
    /**
     * Validate document and return diagnostics
     */
    validateDocument(uri: string, text: string): Promise<LSPDiagnostic[]>;
    /**
     * Get code actions for diagnostics
     */
    getCodeActions(diagnostic: LSPDiagnostic, uri: string, text: string): LSPCodeAction[];
    /**
     * Get hover information
     */
    getHover(uri: string, text: string, line: number, character: number): LSPHover | null;
    /**
     * Get completion items
     */
    getCompletions(uri: string, text: string, line: number, character: number): LSPCompletionItem[];
}
/**
 * Configure IDE integration
 */
export declare function configureIDEIntegration(config: Partial<IDEIntegrationConfig>): void;
/**
 * Get current IDE configuration
 */
export declare function getIDEIntegrationConfig(): IDEIntegrationConfig;
declare const vsCodeIntegration: VSCodeIntegration;
/**
 * IDE Integration utilities
 */
export declare const IDEIntegrationUtils: {
    /**
     * Initialize IDE integration
     */
    initialize: () => void;
    /**
     * Validate document
     */
    validateDocument: (uri: string, text: string) => Promise<LSPDiagnostic[]>;
    /**
     * Get code actions
     */
    getCodeActions: (diagnostic: LSPDiagnostic, uri: string, text: string) => LSPCodeAction[];
    /**
     * Get hover information
     */
    getHover: (uri: string, text: string, line: number, character: number) => LSPHover | null;
    /**
     * Get completions
     */
    getCompletions: (uri: string, text: string, line: number, character: number) => LSPCompletionItem[];
    /**
     * Configure integration
     */
    configure: typeof configureIDEIntegration;
    /**
     * Get configuration
     */
    getConfig: typeof getIDEIntegrationConfig;
    /**
     * Test IDE integration system
     */
    test: () => Promise<void>;
};
export { vsCodeIntegration };
//# sourceMappingURL=ide-integration.d.ts.map