import type { RouteLocationNormalizedLoaded, Router } from 'vue-router'; import type { FetchResponse } from 'ofetch'; import type { CwaResource } from '../../resources/resource-utils.js'; import type { ResourcesStore } from '../../storage/stores/resources/resources-store.js'; import type CwaFetch from './cwa-fetch.js'; import type FetchStatusManager from './fetch-status-manager.js'; export interface FetchResourceEvent { path: string; token?: string; manifestPath?: string; preload?: string[]; shallowFetch?: boolean | 'noexist'; noSave?: boolean; isPrimary?: boolean; iri?: string; } export interface FetchManifestEvent { manifestPath: string; token: string; routeChecked?: Promise; } export interface FetchEvent { path: string; noQuery?: boolean; preload?: string[]; } export interface CwaFetchRequestHeaders { path?: string; preload?: string; } export type CwaFetchResponse = FetchResponse; export interface CwaFetchResponseRaw { response: Promise; headers: CwaFetchRequestHeaders; } interface FetchBatchEvent { paths: string[]; token?: string; noSave?: boolean; shallowFetch?: boolean | 'noexist'; } export default class Fetcher { private readonly cwaFetch; private fetchStatusManager; private router; private readonly isServer; private readonly followsRedirects; private readonly _store; constructor(cwaFetch: CwaFetch, fetchStatusManager: FetchStatusManager, router: Router, resourcesStoreDefinition: ResourcesStore, isServer?: boolean, followsRedirects?: () => boolean); fetchRoute(route: RouteLocationNormalizedLoaded): Promise; fetchResource({ path, token, manifestPath, preload, shallowFetch, noSave, isPrimary, iri: userProvidedIri }: FetchResourceEvent): Promise; private fetchManifest; private fetchAssociatedResources; fetchBatch({ paths, token, noSave, shallowFetch }: FetchBatchEvent): Promise<(CwaResource | undefined)[]>; fetch(event: FetchEvent): CwaFetchResponseRaw; private consumesPageQuery; private appendQueryToPath; private createRequestHeaders; private get resourcesStore(); } export {};