import { FilterItemViewmodel } from "@colijnit/corecomponents_v12";
import { TransactionService } from "../../../service/transaction.service";
import { TransactionSearchService } from "./transaction-search.service";
export declare class FilterRequestService {
    searchService: TransactionSearchService;
    private _transactionService;
    constructor(searchService: TransactionSearchService, _transactionService: TransactionService);
    /**
     * @param collection collection of FilterItemViewmodels
     * @param modelName name of the model, has to match with a property of TransactionSearchViewRequest
     * @sets searchRequest in following format: modelName: "?='20191',?='27053'"
     */
    handleCollectionChangeForRange(collection: FilterItemViewmodel[], modelName: string): void;
    /**
     * @param collection collection of FilterItemViewmodels
     * @param modelName name of the model, has to match with properties of TransactionSearchViewRequest
     * @sets searchRequest in following format:  modelName: ['0', '1']
     */
    handleCollectionChangeForArray(collection: FilterItemViewmodel[], modelName: string): void;
    /**
     * @param value value of selected item
     * @param modelName name of the model, has to match with properties of TransactionSearchViewRequest
     * @sets searchRequest in following format:  modelName: 2
     */
    handleCollectionChangeForSingleNumber(value: number, modelName: string): void;
    /**
     * @param collection collection of FilterItemViewmodels
     * @param modelName name of the model, has to match with properties of TransactionSearchViewRequest
     * @sets searchRequest in following format:  modelName: 2
     */
    handleCollectionChangeForSingleSelect(collection: FilterItemViewmodel[], modelName: string): void;
    /**
     * @param value value of (un)checked item
     * @param modelName name of the model, has to match with properties of TransactionSearchViewRequest
     * @sets searchRequest in following format:  modelName: "?='J'"
     */
    handleCheckboxValueChangeForString(value: boolean, modelName: string): void;
    /**
     * @param value value of (un)checked item
     * @param modelName name of the model, has to match with properties of TransactionSearchViewRequest
     * @sets searchRequest in following format:  modelName: 1
     */
    handleCheckboxValueChangeForNumber(value: boolean, modelName: string): void;
    /**
     * @param dates an array with a startDate and an endDate
     * @param modelName name of the model, has to match with properties of TransactionSearchViewRequest
     * @sets searchRequest in following format:  modelName: "?>='01-08-2022'& ?<='31-08-2022'"
     */
    handleDateRangeChange(dates: Date[], modelName: string): void;
    /**
     * @param filterRequestRange a date range in string format
     * @param index the index of which date should be returned
     * @returns the requested date in Date format
     */
    getDateFromFilterRequestRange(filterRequestRange: string, index: number): Date;
    /**
     * @param collection collection of FilterItemViewmodels
     * @returns filterRequest in following format: "?='20191',?='27053'"
     */
    private _getFilterRequestForCollectionRange;
    /**
     * @param value value of (un)checked item
     * @returns filterRequest in following format: "?='J'"
     */
    private _getFilterRequestForBooleanToString;
    /**
     * @param collection collection of FilterItemViewmodels
     * @returns filterRequest in following format: ['0', '1']
     */
    private _getFilterRequestForCollectionArray;
    /**
     * @param collection collection of FilterItemViewmodels
     * @returns filterRequest in following format: 2
     */
    private _getFilterRequestForSingleSelect;
    /**
     * @param startDate startDate of the date range
     * @param endDate endDate of the date range
     * @returns filterRequest in following format: "?>='01-08-2022'& ?<='31-08-2022'"
     */
    private _getFilterRequestForDateRange;
    /**
     * @param date date in Date format
     * @returns date in following string format: '01-08-2022'
     */
    private _formatDateToString;
}
