import { HttpClient, HttpHeaders, HttpResponse, HttpEvent, HttpParameterCodec, HttpContext } from '@angular/common/http';
import { Observable } from 'rxjs';
import { DataDestroyObject } from '../model/dataDestroyObject';
import { ExportFileFilter } from '../model/exportFileFilter';
import { HttpConfiguration } from '../configuration';
import * as i0 from "@angular/core";
export declare class DataService {
    protected httpClient: HttpClient;
    protected basePath: string;
    defaultHeaders: HttpHeaders;
    configuration: HttpConfiguration;
    encoder: HttpParameterCodec;
    constructor(httpClient: HttpClient, basePath: string | string[], configuration: HttpConfiguration);
    private addToHttpParams;
    private addToHttpParamsRecursive;
    /**
     * Bulk update transaction properties. For more information, see https://docs.firefly-iii.org/references/firefly-iii/api/specials/
     * Allows you to update transactions in bulk.
     * @param query The JSON query.
     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param reportProgress flag to report request and response progress.
     */
    bulkUpdateTransactions(query: string, observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
        transferCache?: boolean;
    }): Observable<any>;
    bulkUpdateTransactions(query: string, observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
        transferCache?: boolean;
    }): Observable<HttpResponse<any>>;
    bulkUpdateTransactions(query: string, observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
        transferCache?: boolean;
    }): Observable<HttpEvent<any>>;
    /**
     * Endpoint to destroy user data
     * A call to this endpoint deletes the requested data type. Use it with care and always with user permission. The demo user is incapable of using this endpoint.
     * @param objects The type of data that you wish to destroy. You can only use one at a time.
     * @param xTraceId Unique identifier associated with this request.
     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param reportProgress flag to report request and response progress.
     */
    destroyData(objects: DataDestroyObject, xTraceId?: string, observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
        transferCache?: boolean;
    }): Observable<any>;
    destroyData(objects: DataDestroyObject, xTraceId?: string, observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
        transferCache?: boolean;
    }): Observable<HttpResponse<any>>;
    destroyData(objects: DataDestroyObject, xTraceId?: string, observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
        transferCache?: boolean;
    }): Observable<HttpEvent<any>>;
    /**
     * Export account data from Firefly III
     * This endpoint allows you to export your accounts from Firefly III into a file. Currently supports CSV exports only.
     * @param xTraceId Unique identifier associated with this request.
     * @param type The file type the export file (CSV is currently the only option).
     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param reportProgress flag to report request and response progress.
     */
    exportAccounts(xTraceId?: string, type?: ExportFileFilter, observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json' | 'application/octet-stream';
        context?: HttpContext;
        transferCache?: boolean;
    }): Observable<Blob>;
    exportAccounts(xTraceId?: string, type?: ExportFileFilter, observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json' | 'application/octet-stream';
        context?: HttpContext;
        transferCache?: boolean;
    }): Observable<HttpResponse<Blob>>;
    exportAccounts(xTraceId?: string, type?: ExportFileFilter, observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json' | 'application/octet-stream';
        context?: HttpContext;
        transferCache?: boolean;
    }): Observable<HttpEvent<Blob>>;
    /**
     * Export bills from Firefly III
     * This endpoint allows you to export your bills from Firefly III into a file. Currently supports CSV exports only.
     * @param xTraceId Unique identifier associated with this request.
     * @param type The file type the export file (CSV is currently the only option).
     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param reportProgress flag to report request and response progress.
     */
    exportBills(xTraceId?: string, type?: ExportFileFilter, observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json' | 'application/octet-stream';
        context?: HttpContext;
        transferCache?: boolean;
    }): Observable<Blob>;
    exportBills(xTraceId?: string, type?: ExportFileFilter, observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json' | 'application/octet-stream';
        context?: HttpContext;
        transferCache?: boolean;
    }): Observable<HttpResponse<Blob>>;
    exportBills(xTraceId?: string, type?: ExportFileFilter, observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json' | 'application/octet-stream';
        context?: HttpContext;
        transferCache?: boolean;
    }): Observable<HttpEvent<Blob>>;
    /**
     * Export budgets and budget amount data from Firefly III
     * This endpoint allows you to export your budgets and associated budget data from Firefly III into a file. Currently supports CSV exports only.
     * @param xTraceId Unique identifier associated with this request.
     * @param type The file type the export file (CSV is currently the only option).
     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param reportProgress flag to report request and response progress.
     */
    exportBudgets(xTraceId?: string, type?: ExportFileFilter, observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json' | 'application/octet-stream';
        context?: HttpContext;
        transferCache?: boolean;
    }): Observable<Blob>;
    exportBudgets(xTraceId?: string, type?: ExportFileFilter, observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json' | 'application/octet-stream';
        context?: HttpContext;
        transferCache?: boolean;
    }): Observable<HttpResponse<Blob>>;
    exportBudgets(xTraceId?: string, type?: ExportFileFilter, observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json' | 'application/octet-stream';
        context?: HttpContext;
        transferCache?: boolean;
    }): Observable<HttpEvent<Blob>>;
    /**
     * Export category data from Firefly III
     * This endpoint allows you to export your categories from Firefly III into a file. Currently supports CSV exports only.
     * @param xTraceId Unique identifier associated with this request.
     * @param type The file type the export file (CSV is currently the only option).
     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param reportProgress flag to report request and response progress.
     */
    exportCategories(xTraceId?: string, type?: ExportFileFilter, observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json' | 'application/octet-stream';
        context?: HttpContext;
        transferCache?: boolean;
    }): Observable<Blob>;
    exportCategories(xTraceId?: string, type?: ExportFileFilter, observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json' | 'application/octet-stream';
        context?: HttpContext;
        transferCache?: boolean;
    }): Observable<HttpResponse<Blob>>;
    exportCategories(xTraceId?: string, type?: ExportFileFilter, observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json' | 'application/octet-stream';
        context?: HttpContext;
        transferCache?: boolean;
    }): Observable<HttpEvent<Blob>>;
    /**
     * Export piggy banks from Firefly III
     * This endpoint allows you to export your piggy banks from Firefly III into a file. Currently supports CSV exports only.
     * @param xTraceId Unique identifier associated with this request.
     * @param type The file type the export file (CSV is currently the only option).
     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param reportProgress flag to report request and response progress.
     */
    exportPiggies(xTraceId?: string, type?: ExportFileFilter, observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json' | 'application/octet-stream';
        context?: HttpContext;
        transferCache?: boolean;
    }): Observable<Blob>;
    exportPiggies(xTraceId?: string, type?: ExportFileFilter, observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json' | 'application/octet-stream';
        context?: HttpContext;
        transferCache?: boolean;
    }): Observable<HttpResponse<Blob>>;
    exportPiggies(xTraceId?: string, type?: ExportFileFilter, observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json' | 'application/octet-stream';
        context?: HttpContext;
        transferCache?: boolean;
    }): Observable<HttpEvent<Blob>>;
    /**
     * Export recurring transaction data from Firefly III
     * This endpoint allows you to export your recurring transactions from Firefly III into a file. Currently supports CSV exports only.
     * @param xTraceId Unique identifier associated with this request.
     * @param type The file type the export file (CSV is currently the only option).
     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param reportProgress flag to report request and response progress.
     */
    exportRecurring(xTraceId?: string, type?: ExportFileFilter, observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json' | 'application/octet-stream';
        context?: HttpContext;
        transferCache?: boolean;
    }): Observable<Blob>;
    exportRecurring(xTraceId?: string, type?: ExportFileFilter, observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json' | 'application/octet-stream';
        context?: HttpContext;
        transferCache?: boolean;
    }): Observable<HttpResponse<Blob>>;
    exportRecurring(xTraceId?: string, type?: ExportFileFilter, observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json' | 'application/octet-stream';
        context?: HttpContext;
        transferCache?: boolean;
    }): Observable<HttpEvent<Blob>>;
    /**
     * Export rule groups and rule data from Firefly III
     * This endpoint allows you to export your rules and rule groups from Firefly III into a file. Currently supports CSV exports only.
     * @param xTraceId Unique identifier associated with this request.
     * @param type The file type the export file (CSV is currently the only option).
     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param reportProgress flag to report request and response progress.
     */
    exportRules(xTraceId?: string, type?: ExportFileFilter, observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json' | 'application/octet-stream';
        context?: HttpContext;
        transferCache?: boolean;
    }): Observable<Blob>;
    exportRules(xTraceId?: string, type?: ExportFileFilter, observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json' | 'application/octet-stream';
        context?: HttpContext;
        transferCache?: boolean;
    }): Observable<HttpResponse<Blob>>;
    exportRules(xTraceId?: string, type?: ExportFileFilter, observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json' | 'application/octet-stream';
        context?: HttpContext;
        transferCache?: boolean;
    }): Observable<HttpEvent<Blob>>;
    /**
     * Export tag data from Firefly III
     * This endpoint allows you to export your tags from Firefly III into a file. Currently supports CSV exports only.
     * @param xTraceId Unique identifier associated with this request.
     * @param type The file type the export file (CSV is currently the only option).
     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param reportProgress flag to report request and response progress.
     */
    exportTags(xTraceId?: string, type?: ExportFileFilter, observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json' | 'application/octet-stream';
        context?: HttpContext;
        transferCache?: boolean;
    }): Observable<Blob>;
    exportTags(xTraceId?: string, type?: ExportFileFilter, observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json' | 'application/octet-stream';
        context?: HttpContext;
        transferCache?: boolean;
    }): Observable<HttpResponse<Blob>>;
    exportTags(xTraceId?: string, type?: ExportFileFilter, observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json' | 'application/octet-stream';
        context?: HttpContext;
        transferCache?: boolean;
    }): Observable<HttpEvent<Blob>>;
    /**
     * Export transaction data from Firefly III
     * This endpoint allows you to export transactions from Firefly III into a file. Currently supports CSV exports only.
     * @param start A date formatted YYYY-MM-DD.
     * @param end A date formatted YYYY-MM-DD.
     * @param xTraceId Unique identifier associated with this request.
     * @param accounts Limit the export of transactions to these accounts only. Only asset accounts will be accepted. Other types will be silently dropped.
     * @param type The file type the export file (CSV is currently the only option).
     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param reportProgress flag to report request and response progress.
     */
    exportTransactions(start: string, end: string, xTraceId?: string, accounts?: string, type?: ExportFileFilter, observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json' | 'application/octet-stream';
        context?: HttpContext;
        transferCache?: boolean;
    }): Observable<Blob>;
    exportTransactions(start: string, end: string, xTraceId?: string, accounts?: string, type?: ExportFileFilter, observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json' | 'application/octet-stream';
        context?: HttpContext;
        transferCache?: boolean;
    }): Observable<HttpResponse<Blob>>;
    exportTransactions(start: string, end: string, xTraceId?: string, accounts?: string, type?: ExportFileFilter, observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json' | 'application/octet-stream';
        context?: HttpContext;
        transferCache?: boolean;
    }): Observable<HttpEvent<Blob>>;
    /**
     * Endpoint to purge user data
     * A call to this endpoint purges all previously deleted data. Use it with care and always with user permission. The demo user is incapable of using this endpoint.
     * @param xTraceId Unique identifier associated with this request.
     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param reportProgress flag to report request and response progress.
     */
    purgeData(xTraceId?: string, observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
        transferCache?: boolean;
    }): Observable<any>;
    purgeData(xTraceId?: string, observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
        transferCache?: boolean;
    }): Observable<HttpResponse<any>>;
    purgeData(xTraceId?: string, observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
        transferCache?: boolean;
    }): Observable<HttpEvent<any>>;
    static ɵfac: i0.ɵɵFactoryDeclaration<DataService, [null, { optional: true; }, { optional: true; }]>;
    static ɵprov: i0.ɵɵInjectableDeclaration<DataService>;
}
