import { HttpClient } from '@angular/common/http';
import { Environment } from '../ngx-services.models';
import { QueryParams } from './models/api.models';
import { NotificationConfigurationIn, NotificationConfigurationOut, NotificationIn, NotificationOut, NotificationsOut, NotificationsTypeOut } from './models/api-notifications.types';
import { Observable } from 'rxjs';
import * as i0 from "@angular/core";
export declare class ApiNotificationsService {
    private environments;
    private http;
    constructor(environments: Environment, http: HttpClient);
    /**
     * Retrieves the URL for the notifications API from the environment settings.
     * If the URL is not defined, an empty string is returned.
     *
     * @return {string} The API Notifications URL or an empty string if not defined.
     */
    get url(): string;
    /**
     * Retrieves notifications based on the provided query parameters.
     *
     * @param {QueryParams} params - The query parameters used to filter and retrieve notifications.
     * @return {Observable<NotificationsOut>} An observable that emits the fetched notifications.
     */
    getNotifications(params: QueryParams): Observable<NotificationsOut>;
    /**
     * Sends a notification request to the server using the provided body.
     *
     * @param {NotificationIn} body - The notification data to be sent in the request body.
     * @return {Observable<NotificationOut>} An observable emitting the response containing the notification output data.
     */
    postNotification(body: NotificationIn): Observable<NotificationOut>;
    /**
     * Sends a PUT request to update a notification with the provided ID and body.
     *
     * @param {number} id - The unique identifier of the notification to be updated.
     * @param {NotificationIn} body - The data to update the notification with.
     * @return {Observable<NotificationOut>} An observable containing the updated notification data.
     */
    putNotification(id: number, body: NotificationIn): Observable<NotificationOut>;
    /**
     * Deletes a notification by its unique identifier.
     *
     * @param {number} id - The unique identifier of the notification to delete.
     * @return {Observable<{}>} An observable that emits the response after deleting the notification.
     */
    deleteNotification(id: number): Observable<{}>;
    /**
     * Marks the notification as finished for the specified notification ID.
     *
     * @param {number} id - The unique identifier of the notification to be marked as finished.
     * @return {Observable<NotificationOut>} An Observable emitting the updated notification object.
     */
    putNotificationFinish(id: number): Observable<NotificationOut>;
    /**
     * Sends a POST request to create or update notification configurations.
     *
     * @param {NotificationConfigurationIn} body - The notification configuration payload to be sent in the request.
     * @return {Observable<NotificationConfigurationOut>} An observable emitting the response containing the created or updated notification configuration.
     */
    postNotificationConfigurations(body: NotificationConfigurationIn): Observable<NotificationConfigurationOut>;
    /**
     * Retrieves the notification types based on the provided query parameters.
     *
     * @param {QueryParams} params - The query parameters for fetching the notification types.
     * @return {Observable<NotificationsTypeOut>} An observable that emits the fetched notification types.
     */
    getNotificationsType(params: QueryParams): Observable<NotificationsTypeOut>;
    static ɵfac: i0.ɵɵFactoryDeclaration<ApiNotificationsService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<ApiNotificationsService>;
}
