import { Feature } from 'oak-frontend-base'; import { Cache } from 'oak-frontend-base/es/features/cache'; import { RunningTree } from 'oak-frontend-base/es/features/runningTree'; import { Locales } from 'oak-frontend-base/es/features/locales'; import { CommonAspectDict } from 'oak-common-aspect'; import AspectDict from '../aspects/AspectDict'; import { EntityDict } from '../oak-app-domain'; import { BackendRuntimeContext } from '../context/BackendRuntimeContext'; import { FrontendRuntimeContext } from '../context/FrontendRuntimeContext'; import { Application } from './application'; export type FileState = 'local' | 'uploading' | 'uploaded' | 'failed'; export declare class ExtraFile, FrontCxt extends FrontendRuntimeContext, AD extends AspectDict & CommonAspectDict> extends Feature { private cache; private application; private locales; private files; private runningTree; constructor(cache: Cache>, application: Application, locales: Locales, runningTree: RunningTree); addLocalFile(id: string, file: File | string): void; removeLocalFiles(ids: string[]): void; upload(id: string): Promise; uploadCommit(efPaths: string[], oakFullpath: string): Promise; getUrl(extraFile?: EntityDict['extraFile']['OpSchema'] | EntityDict['extraFile']['Schema'] | null, style?: string): string; getFileState(id: string): { state: FileState; percentage?: number; } | undefined; getFileName(extraFile: EntityDict['extraFile']['OpSchema']): string; formatBytes(size: number): string; autoUpload(extraFile: EntityDict['extraFile']['OpSchema'], file: File | string): Promise; private uploadToAspect; }