/**
 * Copyright (c) 2019-2020 mol* contributors, licensed under MIT, See LICENSE file for more info.
 *
 * @author Alexander Rose <alexander.rose@weirdbyte.de>
 * @author David Sehnal <david.sehnal@gmail.com>
 */
import { PluginContext } from '../../mol-plugin/context';
import { StateObjectRef } from '../../mol-state';
import { FileInfo } from '../../mol-util/file-info';
import { PluginStateObject } from '../objects';
export interface DataFormatProvider<P = any, R = any, V = any> {
    label: string;
    description: string;
    category?: string;
    stringExtensions?: string[];
    binaryExtensions?: string[];
    isApplicable?(info: FileInfo, data: string | Uint8Array): boolean;
    parse(plugin: PluginContext, data: StateObjectRef<PluginStateObject.Data.Binary | PluginStateObject.Data.String>, params?: P): Promise<R>;
    visuals?(plugin: PluginContext, data: R): Promise<V> | undefined;
}
export declare function DataFormatProvider<P extends DataFormatProvider>(provider: P): P;
declare type cifVariants = 'dscif' | 'coreCif' | -1;
export declare function guessCifVariant(info: FileInfo, data: Uint8Array | string): cifVariants;
export {};
