/**
 * Copyright (c) 2018-2020 mol* contributors, licensed under MIT, See LICENSE file for more info.
 *
 * @author David Sehnal <david.sehnal@gmail.com>
 */
import { Structure, Model } from '../../../mol-model/structure.js';
import { Cache } from './cache.js';
import { CifFrame, CifBlock } from '../../../mol-io/reader/cif.js';
import { JobEntry } from './jobs.js';
import { ModelPropertiesProvider } from '../property-provider.js';
export declare enum StructureSourceType {
    File = 0,
    Cache = 1
}
export interface StructureInfo {
    sourceType: StructureSourceType;
    readTime: number;
    parseTime: number;
    createModelTime: number;
    attachPropsTime: number;
    sourceId: string;
    entryId: string;
}
export interface StructureWrapper {
    info: StructureInfo;
    isBinary: boolean;
    key: string;
    approximateSize: number;
    models: ArrayLike<Model>;
    modelMap: Map<number, Model>;
    structureModelMap: Map<number, Structure>;
    propertyProvider: ModelPropertiesProvider | undefined;
    cifFrame: CifFrame;
    cache: object;
}
export declare function createStructureWrapperFromJobEntry(entry: JobEntry, propertyProvider: ModelPropertiesProvider | undefined, allowCache?: boolean): Promise<StructureWrapper>;
export declare const StructureCache: Cache<StructureWrapper>;
export declare function readDataAndFrame(filename: string, key?: string): Promise<{
    data: string | Uint8Array;
    frame: CifBlock;
    isBinary: boolean;
}>;
export declare function readStructureWrapper(key: string, sourceId: string | '_local_', entryId: string, jobId: string | undefined, propertyProvider: ModelPropertiesProvider | undefined): Promise<StructureWrapper>;
export declare function resolveStructure(wrapper: StructureWrapper, modelNum?: number): Promise<Structure | undefined>;
export declare function resolveStructures(wrapper: StructureWrapper, modelNums?: number[]): Promise<Structure[]>;
