/** Core */
import { CoreComponent } from "cmf.core/src/core";
import Cmf from "cmf.lbos";
/** Nested modules */
import { PropertiesEditorProperty } from "../propertiesEditor/propertiesEditor";
import { DialogButton, ConfirmDialogResult } from "cmf.core/src/domain/extensions/dialog";
import { ValidatorModel } from "cmf.core.controls/src/directives/validator/validator";
/** Angular */
import * as ng from "@angular/core";
/**
* @whatItDoes
*
* This component allows a user to set the parameters for a given query
*
* @howToUse
*
* This component is used by simply supplying the query
*
* ### Inputs
* `QueryObject` : **query** - The query to show parameters from
*
* ### Outputs
* `QueryObject` : **queryChange** - Triggered when the parameters are set and confirmed
*
* ### Example
* To use the component, assume this HTML Template as an example:
*
* ```HTML
*
* ```
*
* @description
*
* ## QueryParameters Component
*
* ### Dependencies
*
* #### Components
* * PropertiesEditor : `cmf.core.business.controls` (Ex: `cmf.core.controls`)
*
*/
export declare class QueryParameters extends CoreComponent implements ng.OnChanges {
private _validatorModel;
/**
* Properties to to show on the properties editor
*/
_parameterProperties: {
[key: string]: PropertiesEditorProperty;
};
/**
* Instance that holds the parameter values
*/
_parameterInstance: any;
/**
* Query to output with the injected parameters
*/
private _query;
/**
* Dialog component
*/
private _dialogComponent;
/**
* Close Event
*/
close: ng.EventEmitter;
/**
* Dialog buttons
*/
_buttons: DialogButton[];
/**
* Query object that is going to be configured (input)
*/
query: Cmf.Foundation.BusinessObjects.QueryObject.QueryObject;
/**
* Query change event fired on valid execute
*/
queryChange: ng.EventEmitter;
/**
* Constructor
*
* @param viewContainerRef the reference to the component view container
*/
constructor(viewContainerRef: ng.ViewContainerRef, _validatorModel: ValidatorModel);
/**
* On changes method check what parameters are available and display them
* @param changes the changes made to the component properties
*/
ngOnChanges(changes: ng.SimpleChanges): void;
/**
* On dialog confirm set the parameters
* @param args DialogButtonCallbackArgs
* @returns Promise to be run on execute
*/
private onExecute;
/**
* On dialog cancel
* @param args DialogButtonCallbackArgs
* @returns Promise to close
*/
private onCancel;
/**
* Get parameter filter
* @param query Query to change
* @param parameter Parameter to remove
* @returns filter where the parameter is present
*/
private getParameterFilter;
/**
* Run throught the filter and inner filter and try to find the filter that matches this parameter
* @param filter Filter to run through
* @param parameter Parameter to find
*/
private getParameterFromFilter;
}
export declare class QueryParametersModule {
}