import { OnInit, OnDestroy, ElementRef, ChangeDetectorRef } from '@angular/core';
import { ComponentStudioStateService } from '../../services/component-studio-state.service';
import * as i0 from "@angular/core";
/**
 * Represents a single message in the AI assistant chat thread
 */
export interface ChatMessage {
    Role: 'user' | 'assistant' | 'system';
    Content: string;
    Timestamp: Date;
}
/**
 * Represents a quick action button in the AI assistant panel
 */
interface QuickAction {
    Label: string;
    Icon: string;
    Prompt: string;
    RequiresError: boolean;
}
/**
 * Represents an AI model option in the model selector dropdown
 */
interface AIModelOption {
    ID: string;
    Name: string;
    Vendor: string | null;
    DisplayLabel: string;
}
export declare class AIAssistantPanelComponent implements OnInit, OnDestroy {
    State: ComponentStudioStateService;
    private cdr;
    chatThreadEl: ElementRef<HTMLDivElement>;
    chatInputEl: ElementRef<HTMLTextAreaElement>;
    Messages: ChatMessage[];
    InputText: string;
    IsWaitingForResponse: boolean;
    AvailableModels: AIModelOption[];
    SelectedModelID: string | null;
    IsLoadingModels: boolean;
    QuickActions: QuickAction[];
    private destroy$;
    constructor(State: ComponentStudioStateService, cdr: ChangeDetectorRef);
    ngOnInit(): Promise<void>;
    ngOnDestroy(): void;
    LoadModels(): Promise<void>;
    private subscribeToErrorEvents;
    private handleIncomingError;
    private addWelcomeMessage;
    OnSendMessage(): void;
    OnQuickAction(action: QuickAction): void;
    OnInputKeydown(event: KeyboardEvent): void;
    OnInputChange(): void;
    OnCollapsePanel(): void;
    IsQuickActionEnabled(action: QuickAction): boolean;
    private addMessage;
    private simulateResponse;
    private scrollToBottom;
    private focusInput;
    private autoGrowTextarea;
    private resetInputHeight;
    FormatTimestamp(date: Date): string;
    TrackByTimestamp(index: number, message: ChatMessage): number;
    static ɵfac: i0.ɵɵFactoryDeclaration<AIAssistantPanelComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<AIAssistantPanelComponent, "mj-ai-assistant-panel", never, {}, {}, never, never, false, never>;
}
export {};
//# sourceMappingURL=ai-assistant-panel.component.d.ts.map