import { type DashboardParameterMode, type IAutomationMetadataObjectDefinition, type IDashboardExportParameter, type IDashboardParameter, type IInsightParameterValue, type INumberParameterConstraints, type IParameterMetadataObject, type IdentifierRef } from "@gooddata/sdk-model";
/**
 * A workspace parameter resolved for display and editing inside an automation (alert/schedule)
 * dialog. The `value` is the current effective value the headless run will capture.
 *
 * @internal
 */
export interface IAutomationParameter {
    ref: IdentifierRef;
    title: string;
    value: number;
    mode: DashboardParameterMode;
    constraints?: INumberParameterConstraints;
}
/**
 * Stored {@link IInsightParameterValue} overrides carry only {ref, value}; title, mode and
 * constraints are re-derived from the current dashboard and workspace catalog.
 *
 * @internal
 */
export declare function reconstructAutomationParametersFromValues(stored: IInsightParameterValue[], dashboardParameters: IDashboardParameter[], catalog: IParameterMetadataObject[]): IAutomationParameter[];
/**
 * Stored export overrides ({@link IDashboardExportParameter}) carry the value as a string; it is
 * parsed back to a number and non-finite values are dropped. Title, mode and constraints are
 * re-derived from the current dashboard and workspace catalog, mirroring
 * {@link reconstructAutomationParametersFromValues}.
 *
 * @internal
 */
export declare function reconstructAutomationParametersFromExportParameters(stored: IDashboardExportParameter[], dashboardParameters: IDashboardParameter[], catalog: IParameterMetadataObject[]): IAutomationParameter[];
/**
 * Parameters of unsupported types are dropped (cannot be rendered/clamped). Dashboard-`hidden`
 * and `readonly` ones are dropped too — once added they would derive back to an invisible or
 * locked (undeletable) chip.
 *
 * @internal
 */
export declare function availableAutomationParameters(catalog: IParameterMetadataObject[], selected: IAutomationParameter[], dashboardParameters?: IDashboardParameter[], widgetParameterValues?: IInsightParameterValue[]): IAutomationParameter[];
/**
 * Returns a copy of the automation with `alert.execution.parameters` replaced. No-op when the
 * automation carries no alert.
 *
 * @internal
 */
export declare function setAlertExecutionParameters(automation: IAutomationMetadataObjectDefinition, parameters: IInsightParameterValue[]): IAutomationMetadataObjectDefinition;
/**
 * A param dropped from the *dashboard* is not stale: parameters are workspace-scoped, so only
 * removal from the workspace catalog counts.
 *
 * @internal
 */
export declare function hasStaleAlertParameters(stored: IInsightParameterValue[] | undefined, catalog: IParameterMetadataObject[]): boolean;
/**
 * Removes the parameters {@link hasStaleAlertParameters} flags as stale.
 *
 * @internal
 */
export declare function dropStaleAlertParameters(stored: IInsightParameterValue[], catalog: IParameterMetadataObject[]): IInsightParameterValue[];
/**
 * Encodes the display-ready chip set back to the neutral export wire shape ({id, value:string,
 * title}). The full per-tab execution set (including `hidden` entries) is converted, not just the
 * visible chips, so the server resolver does not drop omitted parameters to the workspace default.
 *
 * @internal
 */
export declare function automationParametersToExportParameters(parameters: IAutomationParameter[]): IDashboardExportParameter[];
/**
 * Encodes the per-tab execution sets to the neutral export wire shape, or `undefined` when
 * `shouldStore` is false (feature off / store-filters unchecked — signals "omit the field; use
 * latest defaults"). Inverse of {@link reconstructAutomationParametersFromExportParameters}.
 *
 * @internal
 */
export declare function toEffectiveParametersByTab(parametersByTab: Record<string, IAutomationParameter[]>, shouldStore: boolean): Record<string, IDashboardExportParameter[]> | undefined;
/**
 * The single home for "does this export persist its parameters": widget schedules always do (they
 * have no store-filters checkbox), dashboard schedules follow the store-filters checkbox.
 *
 * @internal
 */
export declare function shouldStoreExportParameters(isWidgetSchedule: boolean, storeFilters?: boolean): boolean;
//# sourceMappingURL=automationParameters.d.ts.map