import { EventEmitter, OnInit } from '@angular/core';
import { TemplateEntity } from '@memberjunction/core-entities';
import * as i0 from "@angular/core";
export interface ParameterPair {
    key: string;
    value: string;
    isFromTemplate: boolean;
    description?: string;
    isRequired?: boolean;
    type?: string;
}
export interface TemplateRunResult {
    success: boolean;
    output?: string;
    error?: string;
    executionTimeMs?: number;
}
export declare class TemplateParamDialogComponent implements OnInit {
    template: TemplateEntity | null;
    _isVisible: boolean;
    get isVisible(): boolean;
    set isVisible(value: boolean);
    isVisibleChange: EventEmitter<boolean>;
    onClose: EventEmitter<void>;
    parameters: ParameterPair[];
    isLoading: boolean;
    isRunning: boolean;
    testResult: TemplateRunResult | null;
    hasUnsavedParameters: boolean;
    parametersExpanded: boolean;
    jsonPreviewExpanded: boolean;
    resultsExpanded: boolean;
    private originalTemplateParams;
    ngOnInit(): void;
    loadTemplateParams(): Promise<void>;
    addParameter(): void;
    removeParameter(index: number): void;
    onParameterChange(): void;
    runTemplate(): Promise<void>;
    updateTemplateParams(): Promise<void>;
    close(): void;
    private resetDialogState;
    saveResults(): void;
    get parametersAsJson(): string;
    static ɵfac: i0.ɵɵFactoryDeclaration<TemplateParamDialogComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<TemplateParamDialogComponent, "mj-template-param-dialog", never, { "template": { "alias": "template"; "required": false; }; "isVisible": { "alias": "isVisible"; "required": false; }; }, { "isVisibleChange": "isVisibleChange"; "onClose": "onClose"; }, never, never, false, never>;
}
//# sourceMappingURL=template-param-dialog.component.d.ts.map