import { EventEmitter, OnChanges, SimpleChanges, ChangeDetectorRef } from '@angular/core';
import { BaseAngularComponent } from '@memberjunction/ng-base-types';
import * as i0 from "@angular/core";
/**
 * One row in the param configuration table — either a preset-value or a runtime-prompted param.
 */
export interface ActionPinParamConfig {
    Name: string;
    Description: string;
    IsRequired: boolean;
    DefaultValue: string;
    Mode: 'preset' | 'runtime';
    PresetValue: string;
}
/**
 * Payload returned when the user saves the dialog.
 */
export interface ActionPinConfigResult {
    Action: 'save' | 'cancel';
    Pin?: {
        DisplayName: string;
        ActionID: string;
        ActionName: string;
        AccentColor: string;
        FaIcon: string;
        PresetParams: Record<string, string>;
        RuntimeParamNames: string[];
    };
}
export declare class ActionPinConfigDialogComponent extends BaseAngularComponent implements OnChanges {
    private cdr;
    Visible: boolean;
    ActionID: string | null;
    ActionName: string | null;
    ActionDescription: string | null;
    Result: EventEmitter<ActionPinConfigResult>;
    readonly ColorPalette: {
        name: string;
        value: string;
    }[];
    readonly FaIconPalette: string[];
    DisplayName: string;
    AccentColor: string;
    FaIcon: string;
    Params: ActionPinParamConfig[];
    IsLoadingParams: boolean;
    ErrorMessage: string | null;
    constructor(cdr: ChangeDetectorRef);
    ngOnChanges(changes: SimpleChanges): void;
    private resetState;
    private loadParams;
    SelectColor(hex: string): void;
    SelectFaIcon(icon: string): void;
    SetParamMode(param: ActionPinParamConfig, mode: 'preset' | 'runtime'): void;
    CanSave(): boolean;
    Save(): void;
    Cancel(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<ActionPinConfigDialogComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<ActionPinConfigDialogComponent, "mj-action-pin-config-dialog", never, { "Visible": { "alias": "Visible"; "required": false; }; "ActionID": { "alias": "ActionID"; "required": false; }; "ActionName": { "alias": "ActionName"; "required": false; }; "ActionDescription": { "alias": "ActionDescription"; "required": false; }; }, { "Result": "Result"; }, never, never, false, never>;
}
//# sourceMappingURL=action-pin-config-dialog.component.d.ts.map