import { EventEmitter, OnInit, OnDestroy, AfterViewInit } from '@angular/core';
import { BaseAngularComponent } from '@memberjunction/ng-base-types';
import { MJWindowComponent } from '@memberjunction/ng-ui-components';
import { MJAIAgentEntityExtended, MJAIPromptEntityExtended } from '@memberjunction/ai-core-plus';
import { AITestHarnessComponent } from './ai-test-harness.component';
import * as i0 from "@angular/core";
export interface CustomWindowData {
    agentId?: string;
    agent?: MJAIAgentEntityExtended;
    promptId?: string;
    prompt?: MJAIPromptEntityExtended;
    title?: string;
    width?: string | number;
    height?: string | number;
    initialDataContext?: Record<string, unknown>;
    initialTemplateData?: Record<string, unknown>;
    initialTemplateVariables?: Record<string, unknown>;
    selectedModelId?: string;
    mode?: 'agent' | 'prompt';
}
export declare class TestHarnessCustomWindowComponent extends BaseAngularComponent implements OnInit, OnDestroy, AfterViewInit {
    MjWindow: MJWindowComponent;
    TestHarness?: AITestHarnessComponent;
    Data: CustomWindowData;
    CloseWindow: EventEmitter<void>;
    MinimizeWindow: EventEmitter<void>;
    RestoreWindow: EventEmitter<void>;
    ExecutionStateChange: EventEmitter<{
        windowId?: string;
        isExecuting: boolean;
    }>;
    WindowTitle: string;
    WindowVisible: boolean;
    Width: number;
    Height: number;
    WindowTop: number;
    WindowLeft: number;
    Loading: boolean;
    Error: string;
    WindowState: 'default' | 'maximized';
    IsMaximized: boolean;
    IsMinimized: boolean;
    private originalWidth;
    private originalHeight;
    private originalTop;
    private originalLeft;
    Agent?: MJAIAgentEntityExtended;
    Prompt?: MJAIPromptEntityExtended;
    Mode: 'agent' | 'prompt';
    private metadata;
    private executionCheckInterval;
    private cdr;
    ngOnInit(): void;
    LoadEntity(): Promise<void>;
    private loadAgent;
    private loadPrompt;
    OnClose(): void;
    CloseButtonClick(): void;
    OnStateChange(state: 'default' | 'maximized'): void;
    OnWindowResize(): void;
    OnRunOpened(_event: {
        runId: string;
        runType: 'agent' | 'prompt';
    }): void;
    Minimize(): void;
    RestoreFromMinimized(): void;
    ToggleMaximize(): void;
    private convertToNumber;
    ngAfterViewInit(): void;
    private setupExecutionTracking;
    ngOnDestroy(): void;
    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