import { HttpClient } from '@angular/common/http';
import { DataState } from '@hestia-earth/api';
import { ICycleJSONLD, IImpactAssessmentJSONLD, ISiteJSONLD, NodeType, TermTermType } from '@hestia-earth/schema';
import { INodeMissingLookupLog } from './node-logs-models/node-logs-models.model';
import { HeCommonService } from '../common/common.service';
import { HeAuthService } from '../auth/auth.service';
import * as i0 from "@angular/core";
/**
 * Get the full url to fetch the node data.
 *
 * @param apiBaseUrl The url of the API hosting the data.
 * @param node The node with a type, id and optionally a dataState
 * @returns The full url.
 */
export declare const nodeUrl: (apiBaseUrl: string, { dataState, ...node }: IJSONNode) => string;
export declare const nodeLogsUrl: (apiBaseUrl: string, { dataState, ...node }: IJSONNode) => string;
export declare const lookupUrl: (filename: string) => string;
export declare const termTypeLookupUrl: (termType: TermTermType) => string;
export interface IJSONNode {
    '@type'?: NodeType;
    '@id'?: string;
    type?: NodeType;
    id?: string;
    dataState?: DataState;
    aggregated?: boolean;
}
export interface IRelatedNode {
    '@type': NodeType;
    '@id': string;
    [x: string]: string;
}
export interface IJSONData {
    [NodeType.Cycle]?: ICycleJSONLD[];
    [NodeType.Site]?: ISiteJSONLD[];
    [NodeType.ImpactAssessment]?: IImpactAssessmentJSONLD[];
}
export interface INodeErrorLog {
    error: string;
    stack?: string;
}
export declare class HeNodeService {
    protected http: HttpClient;
    protected authService: HeAuthService;
    protected commonService: HeCommonService;
    constructor(http: HttpClient, authService: HeAuthService, commonService: HeCommonService);
    get$<T>({ dataState, ...node }: IJSONNode): import("rxjs").Observable<T>;
    get<T>(node: IJSONNode, defaultForState?: boolean): Promise<T>;
    getLog({ dataState, aggregated, ...node }: IJSONNode): import("rxjs").Observable<string>;
    getMissingLookupsLog({ dataState, ...node }: IJSONNode): Promise<INodeMissingLookupLog[]>;
    getErrorLog({ dataState, aggregated, ...node }: IJSONNode): Promise<INodeErrorLog>;
    triggerPipeline({ dataState, ...node }: IJSONNode): Promise<Object>;
    downloadRaw<T = any>(url: string, responseType?: any): Promise<T>;
    nodeTypeUrl(type: any): string;
    nodeUrl(node: IJSONNode): string;
    nodeLogsUrl(node: IJSONNode): string;
    downloadLookup(filename: string): Promise<string>;
    lookupLink(termType: TermTermType): Promise<string>;
    static ɵfac: i0.ɵɵFactoryDeclaration<HeNodeService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<HeNodeService>;
}
