import { Environment } from '../ngx-services.models';
import { HttpClient } from '@angular/common/http';
import { Observable } from 'rxjs';
import { QueryParams } from './models/api.models';
import { CollectionPaymentsOut, ExistPendingInvoicesIn, ExistPendingPaymentsIn, ExternalShipmentsOut, ShipmentsReportOut } from './models/api-reports.types';
import * as i0 from "@angular/core";
export declare class ApiReportsService {
    private environments;
    private http;
    constructor(environments: Environment, http: HttpClient);
    /**
     * Retrieves the URL for the reports API from the environment configurations.
     *
     * @return {string} The URL of the reports API.
     */
    get url(): string;
    /**
     * Retrieves the list of collection payments
     *
     * @param {QueryParams} params - The query parameters used to fetch the collection payments.
     * @return {Observable<CollectionPaymentsOut[]>} An observable that emits an array of collection payment.
     */
    getCollectionPayments(params: QueryParams): Observable<CollectionPaymentsOut>;
    /**
     * Fetches the list of shipments with pending payments.
     *
     * @param {ExistPendingPaymentsIn} params - The parameters to filter pending payment shipments.
     * @return {Observable<ShipmentsReportOut>} An observable emitting the shipments report data.
     */
    shipmentsPendingPayments(params: ExistPendingPaymentsIn): Observable<ShipmentsReportOut>;
    /**
     * Fetches shipment reports that are pending invoices based on the specified parameters.
     * This method retrieves a filtered list of shipments with pending invoice statuses.
     *
     * @param {ExistPendingInvoicesIn} params - The parameters to filter the pending invoices, including
     *                                           shipment status codes, and pagination options.
     * @return {Observable<ShipmentsReportOut>} An observable that emits the shipment report data based on the filter criteria.
     */
    shipmentsPendingInvoices(params: ExistPendingInvoicesIn): Observable<ShipmentsReportOut>;
    /**
     * Fetches shipment reports based on the provided query parameters.
     *
     * @param {QueryParams} params - The query parameters used to filter or define the shipment reports.
     * @return {Observable<ShipmentsReportOut>} An observable emitting the shipment report data.
     */
    getShipmentsReport(params: QueryParams): Observable<ShipmentsReportOut>;
    /**
     * Retrieves a report of external shipments based on the provided query parameters.
     *
     * @param {QueryParams} params - An object representing the query parameters for filtering the external shipments report.
     * @return {Observable<ExternalShipmentsOut>} An observable that emits the external shipments report data.
     */
    getExternalShipmentsReport(params: QueryParams): Observable<ExternalShipmentsOut>;
    static ɵfac: i0.ɵɵFactoryDeclaration<ApiReportsService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<ApiReportsService>;
}
