///
import type { EventEmitter } from 'events';
import type { SinkMap } from '@rdf-esm/sink-map';
import type { RdfResource } from '@tpluscode/rdfine';
import type { DatasetIndexed } from 'rdf-dataset-indexed/dataset';
import type { DatasetCore, NamedNode, Stream } from 'rdf-js';
import type { ResourceCacheStrategy } from './ResourceCacheStrategy';
import type { ResourceRepresentation } from './ResourceRepresentation';
import type { ApiDocumentation, HydraResource } from './Resources';
import type { Operation } from './Resources/Operation';
import type { ResourceStore } from './ResourceStore';
import type { ResponseWrapper } from './ResponseWrapper';
import type { RootNodeCandidate } from './RootSelectors';
declare type InvokedOperation = Pick & {
target: Pick;
};
export interface HydraResponse = HydraResource> {
representation?: ResourceRepresentation;
response?: ResponseWrapper;
}
export interface HydraClient {
log: (msg: string) => void;
baseUri?: string;
rootSelectors: [string, RootNodeCandidate][];
parsers: SinkMap;
loadResource = HydraResource>(uri: string | NamedNode, headers?: HeadersInit): Promise>;
loadDocumentation(uri: string | NamedNode, headers?: HeadersInit): Promise | null>;
invokeOperation(operation: InvokedOperation, headers?: HeadersInit, body?: BodyInit): Promise>;
defaultHeaders: HeadersInit | (() => HeadersInit | Promise);
resources: ResourceStore;
apiDocumentations: ResourceRepresentation>[];
cacheStrategy: ResourceCacheStrategy;
}
interface AlcaeusInit {
rootSelectors: [string, RootNodeCandidate][];
resources: ResourceStore;
datasetFactory: () => D;
parsers?: SinkMap;
fetch: typeof fetch;
Headers: typeof Headers;
}
export declare class Alcaeus implements HydraClient {
baseUri?: string;
rootSelectors: [string, RootNodeCandidate][];
parsers: SinkMap;
defaultHeaders: HeadersInit | (() => HeadersInit | Promise);
log: (msg: string) => void;
cacheStrategy: ResourceCacheStrategy;
readonly resources: ResourceStore;
private readonly __apiDocumentations;
private readonly datasetFactory;
private readonly _fetch;
private readonly _headers;
constructor(init: AlcaeusInit);
get apiDocumentations(): ResourceRepresentation>[];
loadResource>(id: string | NamedNode, headers?: HeadersInit, dereferenceApiDocumentation?: boolean): Promise>;
loadDocumentation(id: string | NamedNode, headers?: HeadersInit): Promise | null>;
invokeOperation(operation: InvokedOperation, headers: HeadersInit, body?: BodyInit): Promise>;
private __getApiDocumentation;
private __mergeHeaders;
private __findRootResource;
}
export {};
//# sourceMappingURL=alcaeus.d.ts.map