import { EventEmitter, OnInit, OnDestroy, AfterViewInit, Renderer2, ElementRef, ChangeDetectorRef } from '@angular/core';
import { WindowComponent } from '@progress/kendo-angular-dialog';
import { AIAgentEntityExtended, AIPromptEntityExtended } from '@memberjunction/core-entities';
import { AITestHarnessComponent } from './ai-test-harness.component';
import * as i0 from "@angular/core";
export interface CustomWindowData {
    agentId?: string;
    agent?: AIAgentEntityExtended;
    promptId?: string;
    prompt?: AIPromptEntityExtended;
    title?: string;
    width?: string | number;
    height?: string | number;
    initialDataContext?: Record<string, any>;
    initialTemplateData?: Record<string, any>;
    initialTemplateVariables?: Record<string, any>;
    selectedModelId?: string;
    mode?: 'agent' | 'prompt';
}
export declare class TestHarnessCustomWindowComponent implements OnInit, OnDestroy, AfterViewInit {
    private renderer;
    private elementRef;
    private cdr;
    kendoWindow: WindowComponent;
    testHarness?: AITestHarnessComponent;
    data: CustomWindowData;
    closeWindow: EventEmitter<void>;
    minimizeWindow: EventEmitter<void>;
    restoreWindow: EventEmitter<void>;
    executionStateChange: EventEmitter<{
        windowId?: string | undefined;
        isExecuting: boolean;
    }>;
    windowTitle: string;
    width: number;
    height: number;
    windowTop: number;
    windowLeft: number;
    loading: boolean;
    error: string;
    windowState: 'default' | 'minimized' | 'maximized';
    isMaximized: boolean;
    isMinimized: boolean;
    private originalWidth;
    private originalHeight;
    private originalTop;
    private originalLeft;
    private readonly MINIMIZED_WIDTH;
    private readonly MINIMIZED_HEIGHT;
    agent?: AIAgentEntityExtended;
    prompt?: AIPromptEntityExtended;
    mode: 'agent' | 'prompt';
    private metadata;
    constructor(renderer: Renderer2, elementRef: ElementRef, cdr: ChangeDetectorRef);
    ngOnInit(): void;
    loadEntity(): Promise<void>;
    onClose(): void;
    closeButtonClick(): void;
    onStateChange(state: 'default' | 'minimized' | 'maximized'): void;
    onWindowResize(): void;
    onRunOpened(event: {
        runId: string;
        runType: 'agent' | 'prompt';
    }): void;
    minimize(): void;
    restoreFromMinimized(): void;
    toggleMaximize(): void;
    private convertToNumber;
    ngAfterViewInit(): void;
    private adjustContentHeight;
    private setupResizeListener;
    private setupExecutionTracking;
    ngOnDestroy(): void;
    private updateWindowPosition;
    static ɵfac: i0.ɵɵFactoryDeclaration<TestHarnessCustomWindowComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<TestHarnessCustomWindowComponent, "mj-test-harness-custom-window", never, { "data": { "alias": "data"; "required": false; }; }, { "closeWindow": "closeWindow"; "minimizeWindow": "minimizeWindow"; "restoreWindow": "restoreWindow"; "executionStateChange": "executionStateChange"; }, never, never, false, never>;
}
//# sourceMappingURL=test-harness-custom-window.component.d.ts.map