/**
 * Copyright (c) 2018-2020 mol* contributors, licensed under MIT, See LICENSE file for more info.
 *
 * @author David Sehnal <david.sehnal@gmail.com>
 * @author Alexander Rose <alexander.rose@weirdbyte.de>
 */
import { PluginContext } from '../../mol-plugin/context';
import { StateObjectSelector } from '../../mol-state';
import { PluginStateObject } from '../objects';
import { Volume } from '../../mol-model/volume';
export declare const VolumeFormatCategory = "Volume";
declare type Params = {
    entryId?: string;
};
declare function defaultVisuals(plugin: PluginContext, data: {
    volume: StateObjectSelector<PluginStateObject.Volume.Data>;
}): Promise<StateObjectSelector<PluginStateObject.Volume.Representation3D, import("../../mol-state/transformer").StateTransformer<import("../../mol-state/object").StateObject<any, import("../../mol-state/object").StateObject.Type<any>>, import("../../mol-state/object").StateObject<any, import("../../mol-state/object").StateObject.Type<any>>, any>>[]>;
export declare const Ccp4Provider: {
    label: string;
    description: string;
    category: string;
    binaryExtensions: string[];
    parse: (plugin: PluginContext, data: import("../../mol-state").StateObjectRef<PluginStateObject.Data.String | PluginStateObject.Data.Binary>, params?: Params | undefined) => Promise<{
        format: StateObjectSelector<PluginStateObject.Format.Ccp4, import("../../mol-state/transformer").StateTransformer<PluginStateObject.Data.Binary, PluginStateObject.Format.Ccp4, import("../../mol-util/param-definition").ParamDefinition.Normalize<{}>>>;
        volume: StateObjectSelector<PluginStateObject.Volume.Data, import("../../mol-state/transformer").StateTransformer<PluginStateObject.Format.Ccp4, PluginStateObject.Volume.Data, import("../../mol-util/param-definition").ParamDefinition.Normalize<{
            voxelSize: import("../../mol-math/linear-algebra/3d/vec3").Vec3;
            offset: import("../../mol-math/linear-algebra/3d/vec3").Vec3;
            entryId: string;
        }>>>;
    }>;
    visuals: typeof defaultVisuals;
};
export declare const Dsn6Provider: {
    label: string;
    description: string;
    category: string;
    binaryExtensions: string[];
    parse: (plugin: PluginContext, data: import("../../mol-state").StateObjectRef<PluginStateObject.Data.String | PluginStateObject.Data.Binary>, params?: Params | undefined) => Promise<{
        format: StateObjectSelector<PluginStateObject.Format.Dsn6, import("../../mol-state/transformer").StateTransformer<PluginStateObject.Data.Binary, PluginStateObject.Format.Dsn6, import("../../mol-util/param-definition").ParamDefinition.Normalize<{}>>>;
        volume: StateObjectSelector<PluginStateObject.Volume.Data, import("../../mol-state/transformer").StateTransformer<PluginStateObject.Format.Dsn6, PluginStateObject.Volume.Data, import("../../mol-util/param-definition").ParamDefinition.Normalize<{
            voxelSize: import("../../mol-math/linear-algebra/3d/vec3").Vec3;
            entryId: string;
        }>>>;
    }>;
    visuals: typeof defaultVisuals;
};
export declare const DxProvider: {
    label: string;
    description: string;
    category: string;
    stringExtensions: string[];
    binaryExtensions: string[];
    parse: (plugin: PluginContext, data: import("../../mol-state").StateObjectRef<PluginStateObject.Data.String | PluginStateObject.Data.Binary>, params?: Params | undefined) => Promise<{
        volume: StateObjectSelector<PluginStateObject.Volume.Data, import("../../mol-state/transformer").StateTransformer<PluginStateObject.Format.Dx, PluginStateObject.Volume.Data, import("../../mol-util/param-definition").ParamDefinition.Normalize<{}>>>;
    }>;
    visuals: typeof defaultVisuals;
};
export declare const CubeProvider: {
    label: string;
    description: string;
    category: string;
    stringExtensions: string[];
    parse: (plugin: PluginContext, data: import("../../mol-state").StateObjectRef<PluginStateObject.Data.String | PluginStateObject.Data.Binary>, params?: Params | undefined) => Promise<{
        format: StateObjectSelector<PluginStateObject.Format.Cube, import("../../mol-state/transformer").StateTransformer<PluginStateObject.Data.String, PluginStateObject.Format.Cube, import("../../mol-util/param-definition").ParamDefinition.Normalize<{}>>>;
        volume: StateObjectSelector<PluginStateObject.Volume.Data, import("../../mol-state/transformer").StateTransformer<PluginStateObject.Format.Cube, PluginStateObject.Volume.Data, import("../../mol-util/param-definition").ParamDefinition.Normalize<{
            dataIndex: number;
            entryId: string;
        }>>>;
        structure: StateObjectSelector<PluginStateObject.Molecule.Structure, import("../../mol-state/transformer").StateTransformer<PluginStateObject.Molecule.Model, PluginStateObject.Molecule.Structure, import("../../mol-util/param-definition").ParamDefinition.Normalize<{
            type: import("../../mol-util/param-definition").ParamDefinition.NamedParams<import("../../mol-util/param-definition").ParamDefinition.Normalize<{
                dynamicBonds: any;
                ijkMin: any;
                ijkMax: any;
            }>, "symmetry"> | import("../../mol-util/param-definition").ParamDefinition.NamedParams<import("../../mol-util/param-definition").ParamDefinition.Normalize<{
                dynamicBonds: any;
                id: any;
            }>, "assembly"> | import("../../mol-util/param-definition").ParamDefinition.NamedParams<import("../../mol-util/param-definition").ParamDefinition.Normalize<{
                dynamicBonds: any;
            }>, "auto"> | import("../../mol-util/param-definition").ParamDefinition.NamedParams<import("../../mol-util/param-definition").ParamDefinition.Normalize<{
                dynamicBonds: any;
            }>, "model"> | import("../../mol-util/param-definition").ParamDefinition.NamedParams<import("../../mol-util/param-definition").ParamDefinition.Normalize<{
                dynamicBonds: any;
                radius: any;
            }>, "symmetry-mates"> | import("../../mol-util/param-definition").ParamDefinition.NamedParams<import("../../mol-util/param-definition").ParamDefinition.Normalize<{
                dynamicBonds: any;
                generators: any;
            }>, "symmetry-assembly">;
        }>>>;
    }>;
    visuals: (plugin: PluginContext, data: {
        volume: StateObjectSelector<PluginStateObject.Volume.Data>;
        structure: StateObjectSelector<PluginStateObject.Molecule.Structure>;
    }) => Promise<(StateObjectSelector<PluginStateObject.Molecule.Structure.Representation3D, import("../../mol-state/transformer").StateTransformer<import("../../mol-state/object").StateObject<any, import("../../mol-state/object").StateObject.Type<any>>, import("../../mol-state/object").StateObject<any, import("../../mol-state/object").StateObject.Type<any>>, any>> | StateObjectSelector<PluginStateObject.Volume.Representation3D, import("../../mol-state/transformer").StateTransformer<import("../../mol-state/object").StateObject<any, import("../../mol-state/object").StateObject.Type<any>>, import("../../mol-state/object").StateObject<any, import("../../mol-state/object").StateObject.Type<any>>, any>>)[]>;
};
declare type DsCifParams = {
    entryId?: string | string[];
};
export declare const DscifProvider: {
    label: string;
    description: string;
    category: string;
    stringExtensions: string[];
    binaryExtensions: string[];
    isApplicable: (info: import("../../mol-util/file-info").FileInfo, data: string | Uint8Array) => boolean;
    parse: (plugin: PluginContext, data: import("../../mol-state").StateObjectRef<PluginStateObject.Data.String | PluginStateObject.Data.Binary>, params?: DsCifParams | undefined) => Promise<{
        volumes: StateObjectSelector<PluginStateObject.Volume.Data, import("../../mol-state/transformer").StateTransformer<import("../../mol-state/object").StateObject<any, import("../../mol-state/object").StateObject.Type<any>>, import("../../mol-state/object").StateObject<any, import("../../mol-state/object").StateObject.Type<any>>, any>>[];
    }>;
    visuals: (plugin: PluginContext, data: {
        volumes: StateObjectSelector<PluginStateObject.Volume.Data>[];
    }) => Promise<StateObjectSelector<PluginStateObject.Volume.Representation3D, import("../../mol-state/transformer").StateTransformer<import("../../mol-state/object").StateObject<any, import("../../mol-state/object").StateObject.Type<any>>, import("../../mol-state/object").StateObject<any, import("../../mol-state/object").StateObject.Type<any>>, any>>[]>;
};
export declare const BuiltInVolumeFormats: readonly [readonly ["ccp4", {
    label: string;
    description: string;
    category: string;
    binaryExtensions: string[];
    parse: (plugin: PluginContext, data: import("../../mol-state").StateObjectRef<PluginStateObject.Data.String | PluginStateObject.Data.Binary>, params?: Params | undefined) => Promise<{
        format: StateObjectSelector<PluginStateObject.Format.Ccp4, import("../../mol-state/transformer").StateTransformer<PluginStateObject.Data.Binary, PluginStateObject.Format.Ccp4, import("../../mol-util/param-definition").ParamDefinition.Normalize<{}>>>;
        volume: StateObjectSelector<PluginStateObject.Volume.Data, import("../../mol-state/transformer").StateTransformer<PluginStateObject.Format.Ccp4, PluginStateObject.Volume.Data, import("../../mol-util/param-definition").ParamDefinition.Normalize<{
            voxelSize: import("../../mol-math/linear-algebra/3d/vec3").Vec3;
            offset: import("../../mol-math/linear-algebra/3d/vec3").Vec3;
            entryId: string;
        }>>>;
    }>;
    visuals: typeof defaultVisuals;
}], readonly ["dsn6", {
    label: string;
    description: string;
    category: string;
    binaryExtensions: string[];
    parse: (plugin: PluginContext, data: import("../../mol-state").StateObjectRef<PluginStateObject.Data.String | PluginStateObject.Data.Binary>, params?: Params | undefined) => Promise<{
        format: StateObjectSelector<PluginStateObject.Format.Dsn6, import("../../mol-state/transformer").StateTransformer<PluginStateObject.Data.Binary, PluginStateObject.Format.Dsn6, import("../../mol-util/param-definition").ParamDefinition.Normalize<{}>>>;
        volume: StateObjectSelector<PluginStateObject.Volume.Data, import("../../mol-state/transformer").StateTransformer<PluginStateObject.Format.Dsn6, PluginStateObject.Volume.Data, import("../../mol-util/param-definition").ParamDefinition.Normalize<{
            voxelSize: import("../../mol-math/linear-algebra/3d/vec3").Vec3;
            entryId: string;
        }>>>;
    }>;
    visuals: typeof defaultVisuals;
}], readonly ["cube", {
    label: string;
    description: string;
    category: string;
    stringExtensions: string[];
    parse: (plugin: PluginContext, data: import("../../mol-state").StateObjectRef<PluginStateObject.Data.String | PluginStateObject.Data.Binary>, params?: Params | undefined) => Promise<{
        format: StateObjectSelector<PluginStateObject.Format.Cube, import("../../mol-state/transformer").StateTransformer<PluginStateObject.Data.String, PluginStateObject.Format.Cube, import("../../mol-util/param-definition").ParamDefinition.Normalize<{}>>>;
        volume: StateObjectSelector<PluginStateObject.Volume.Data, import("../../mol-state/transformer").StateTransformer<PluginStateObject.Format.Cube, PluginStateObject.Volume.Data, import("../../mol-util/param-definition").ParamDefinition.Normalize<{
            dataIndex: number;
            entryId: string;
        }>>>;
        structure: StateObjectSelector<PluginStateObject.Molecule.Structure, import("../../mol-state/transformer").StateTransformer<PluginStateObject.Molecule.Model, PluginStateObject.Molecule.Structure, import("../../mol-util/param-definition").ParamDefinition.Normalize<{
            type: import("../../mol-util/param-definition").ParamDefinition.NamedParams<import("../../mol-util/param-definition").ParamDefinition.Normalize<{
                dynamicBonds: any;
                ijkMin: any;
                ijkMax: any;
            }>, "symmetry"> | import("../../mol-util/param-definition").ParamDefinition.NamedParams<import("../../mol-util/param-definition").ParamDefinition.Normalize<{
                dynamicBonds: any;
                id: any;
            }>, "assembly"> | import("../../mol-util/param-definition").ParamDefinition.NamedParams<import("../../mol-util/param-definition").ParamDefinition.Normalize<{
                dynamicBonds: any;
            }>, "auto"> | import("../../mol-util/param-definition").ParamDefinition.NamedParams<import("../../mol-util/param-definition").ParamDefinition.Normalize<{
                dynamicBonds: any;
            }>, "model"> | import("../../mol-util/param-definition").ParamDefinition.NamedParams<import("../../mol-util/param-definition").ParamDefinition.Normalize<{
                dynamicBonds: any;
                radius: any;
            }>, "symmetry-mates"> | import("../../mol-util/param-definition").ParamDefinition.NamedParams<import("../../mol-util/param-definition").ParamDefinition.Normalize<{
                dynamicBonds: any;
                generators: any;
            }>, "symmetry-assembly">;
        }>>>;
    }>;
    visuals: (plugin: PluginContext, data: {
        volume: StateObjectSelector<PluginStateObject.Volume.Data>;
        structure: StateObjectSelector<PluginStateObject.Molecule.Structure>;
    }) => Promise<(StateObjectSelector<PluginStateObject.Molecule.Structure.Representation3D, import("../../mol-state/transformer").StateTransformer<import("../../mol-state/object").StateObject<any, import("../../mol-state/object").StateObject.Type<any>>, import("../../mol-state/object").StateObject<any, import("../../mol-state/object").StateObject.Type<any>>, any>> | StateObjectSelector<PluginStateObject.Volume.Representation3D, import("../../mol-state/transformer").StateTransformer<import("../../mol-state/object").StateObject<any, import("../../mol-state/object").StateObject.Type<any>>, import("../../mol-state/object").StateObject<any, import("../../mol-state/object").StateObject.Type<any>>, any>>)[]>;
}], readonly ["dx", {
    label: string;
    description: string;
    category: string;
    stringExtensions: string[];
    binaryExtensions: string[];
    parse: (plugin: PluginContext, data: import("../../mol-state").StateObjectRef<PluginStateObject.Data.String | PluginStateObject.Data.Binary>, params?: Params | undefined) => Promise<{
        volume: StateObjectSelector<PluginStateObject.Volume.Data, import("../../mol-state/transformer").StateTransformer<PluginStateObject.Format.Dx, PluginStateObject.Volume.Data, import("../../mol-util/param-definition").ParamDefinition.Normalize<{}>>>;
    }>;
    visuals: typeof defaultVisuals;
}], readonly ["dscif", {
    label: string;
    description: string;
    category: string;
    stringExtensions: string[];
    binaryExtensions: string[];
    isApplicable: (info: import("../../mol-util/file-info").FileInfo, data: string | Uint8Array) => boolean;
    parse: (plugin: PluginContext, data: import("../../mol-state").StateObjectRef<PluginStateObject.Data.String | PluginStateObject.Data.Binary>, params?: DsCifParams | undefined) => Promise<{
        volumes: StateObjectSelector<PluginStateObject.Volume.Data, import("../../mol-state/transformer").StateTransformer<import("../../mol-state/object").StateObject<any, import("../../mol-state/object").StateObject.Type<any>>, import("../../mol-state/object").StateObject<any, import("../../mol-state/object").StateObject.Type<any>>, any>>[];
    }>;
    visuals: (plugin: PluginContext, data: {
        volumes: StateObjectSelector<PluginStateObject.Volume.Data>[];
    }) => Promise<StateObjectSelector<PluginStateObject.Volume.Representation3D, import("../../mol-state/transformer").StateTransformer<import("../../mol-state/object").StateObject<any, import("../../mol-state/object").StateObject.Type<any>>, import("../../mol-state/object").StateObject<any, import("../../mol-state/object").StateObject.Type<any>>, any>>[]>;
}]];
export declare type BuildInVolumeFormat = (typeof BuiltInVolumeFormats)[number][0];
export {};
