import { RequestParametersConfig } from './request-parameters.config';
import * as i0 from "@angular/core";
export type ParamsList = 'query' | 'post';
export type ParamsType = {
    [k in ParamsList]: {
        [key: string]: string;
    };
};
/**
 * Partial configuration for RequestParameters Service
 */
export interface PartialRequestParametersConfig extends Partial<RequestParametersConfig> {
}
/**
 * Service used to store the request parameters of your requests so that subsequent calls or refresh the page will preserve
 * them.
 */
export declare class RequestParametersService implements ParamsType {
    private _query;
    private _post;
    private readonly config;
    constructor(config: PartialRequestParametersConfig);
    /**
     * Depending on the strategy, set the internal values for the parameters.
     * See StorageStrategy for more info.
     * @param key
     * @param value
     */
    private setParameters;
    /**
     * Get all the query parameters in a map.
     */
    get query(): {
        [key: string]: any;
    };
    /**
     * Get all the post parameters in a map.
     */
    get post(): {
        [key: string]: any;
    };
    /**
     * Get a specific query parameter value, given the key.
     * @param key
     */
    getQueryParameter(key: string): string | undefined;
    /**
     * Get a specific query parameter value as boolean, given the key.
     * @param key
     */
    getQueryParameterAsBoolean(key: string): boolean | undefined;
    /**
     * Get a specific post parameter value, given the key.
     * @param key
     */
    getPostParameter(key: string): string | undefined;
    /**
     * Get a specific post parameter value as boolean, given the key.
     * @param key
     */
    getPostParameterAsBoolean(key: string): boolean | undefined;
    /**
     * Get a specific parameter value, given the key.
     * @param key
     */
    getParameter(key: string): string | undefined;
    /**
     * Get a specific parameter value as boolean, given the key.
     * @param key
     */
    getParameterAsBoolean(key: string): boolean | undefined;
    /**
     * Clear GET parameters from the storage
     * @param paramsToClear the list on key that you want to clear in get parameters
     */
    clearQueryParameters(paramsToClear?: string[]): void;
    /**
     * Clear POST parameters from the storage
     * @param paramsToClear the list on key that you want to clean in post parameters
     */
    clearPostParameters(paramsToClear?: string[]): void;
    /**
     * Get all the parameters in a map.
     * @param priority the parameter to be given priority in case same key is in get and post params.
     */
    getParams(priority?: ParamsList): {
        [x: string]: any;
    };
    /**
     * Filter Parameters(both Query/POST) from the storage
     * @param paramstoFilter the list on key that you want to filter from parameters
     * @param priority the priorty of the parameter type(POST/Query)
     */
    getFilteredParameters(paramstoFilter?: string[], priority?: ParamsList): {
        [x: string]: any;
    };
    static ɵfac: i0.ɵɵFactoryDeclaration<RequestParametersService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<RequestParametersService>;
}
//# sourceMappingURL=request-parameters.service.d.ts.map