/**
 * Copyright (c) 2018-2022 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>
 * @author Aliaksei Chareshneu <chareshneu.tech@gmail.com>
 */
import { PluginContext } from '../../mol-plugin/context.js';
import { StateObjectSelector } from '../../mol-state/index.js';
import { PluginStateObject } from '../objects.js';
export declare const VolumeFormatCategory = "Volume";
type Params = {
    entryId?: string;
};
declare function defaultVisuals(plugin: PluginContext, data: {
    volume: StateObjectSelector<PluginStateObject.Volume.Data>;
}): Promise<StateObjectSelector<PluginStateObject.Volume.Representation3D, import("../../mol-state/index.js").StateTransformer<import("../../mol-state/index.js").StateObject<any, import("../../mol-state/index.js").StateObject.Type<any>>, import("../../mol-state/index.js").StateObject<any, import("../../mol-state/index.js").StateObject.Type<any>>, any>>[]>;
export declare const Ccp4Provider: {
    label: string;
    description: string;
    category: string;
    binaryExtensions: string[];
    parse: (plugin: PluginContext, data: import("../../mol-state/index.js").StateObjectRef<PluginStateObject.Data.String | PluginStateObject.Data.Binary>, params?: Params) => Promise<{
        format: StateObjectSelector<PluginStateObject.Format.Ccp4, import("../../mol-state/index.js").StateTransformer<PluginStateObject.Data.Binary, PluginStateObject.Format.Ccp4, import("../../mol-util/param-definition.js").ParamDefinition.Normalize<{}>>>;
        volume: StateObjectSelector<PluginStateObject.Volume.Data, import("../../mol-state/index.js").StateTransformer<PluginStateObject.Format.Ccp4, PluginStateObject.Volume.Data, import("../../mol-util/param-definition.js").ParamDefinition.Normalize<{
            voxelSize: import("../../mol-math/linear-algebra.js").Vec3;
            offset: import("../../mol-math/linear-algebra.js").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/index.js").StateObjectRef<PluginStateObject.Data.String | PluginStateObject.Data.Binary>, params?: Params) => Promise<{
        format: StateObjectSelector<PluginStateObject.Format.Dsn6, import("../../mol-state/index.js").StateTransformer<PluginStateObject.Data.Binary, PluginStateObject.Format.Dsn6, import("../../mol-util/param-definition.js").ParamDefinition.Normalize<{}>>>;
        volume: StateObjectSelector<PluginStateObject.Volume.Data, import("../../mol-state/index.js").StateTransformer<PluginStateObject.Format.Dsn6, PluginStateObject.Volume.Data, import("../../mol-util/param-definition.js").ParamDefinition.Normalize<{
            voxelSize: import("../../mol-math/linear-algebra.js").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/index.js").StateObjectRef<PluginStateObject.Data.String | PluginStateObject.Data.Binary>, params?: Params) => Promise<{
        volume: StateObjectSelector<PluginStateObject.Volume.Data, import("../../mol-state/index.js").StateTransformer<PluginStateObject.Format.Dx, PluginStateObject.Volume.Data, import("../../mol-util/param-definition.js").ParamDefinition.Normalize<{}>>>;
    }>;
    visuals: typeof defaultVisuals;
};
export declare const CubeProvider: {
    label: string;
    description: string;
    category: string;
    stringExtensions: string[];
    parse: (plugin: PluginContext, data: import("../../mol-state/index.js").StateObjectRef<PluginStateObject.Data.String | PluginStateObject.Data.Binary>, params?: Params) => Promise<{
        format: StateObjectSelector<PluginStateObject.Format.Cube, import("../../mol-state/index.js").StateTransformer<PluginStateObject.Data.String, PluginStateObject.Format.Cube, import("../../mol-util/param-definition.js").ParamDefinition.Normalize<{}>>>;
        volume: StateObjectSelector<PluginStateObject.Volume.Data, import("../../mol-state/index.js").StateTransformer<PluginStateObject.Format.Cube, PluginStateObject.Volume.Data, import("../../mol-util/param-definition.js").ParamDefinition.Normalize<{
            dataIndex: number;
            entryId: string;
        }>>>;
        structure: StateObjectSelector<PluginStateObject.Molecule.Structure, import("../../mol-state/index.js").StateTransformer<PluginStateObject.Molecule.Model, PluginStateObject.Molecule.Structure, import("../../mol-util/param-definition.js").ParamDefinition.Normalize<{
            type: import("../../mol-util/param-definition.js").ParamDefinition.NamedParams<import("../../mol-util/param-definition.js").ParamDefinition.Normalize<{
                dynamicBonds: /*elided*/ any;
            }>, "auto"> | import("../../mol-util/param-definition.js").ParamDefinition.NamedParams<import("../../mol-util/param-definition.js").ParamDefinition.Normalize<{
                dynamicBonds: /*elided*/ any;
                ijkMin: /*elided*/ any;
                ijkMax: /*elided*/ any;
            }>, "symmetry"> | import("../../mol-util/param-definition.js").ParamDefinition.NamedParams<import("../../mol-util/param-definition.js").ParamDefinition.Normalize<{
                dynamicBonds: /*elided*/ any;
                id: /*elided*/ any;
            }>, "assembly"> | import("../../mol-util/param-definition.js").ParamDefinition.NamedParams<import("../../mol-util/param-definition.js").ParamDefinition.Normalize<{
                dynamicBonds: /*elided*/ any;
            }>, "model"> | import("../../mol-util/param-definition.js").ParamDefinition.NamedParams<import("../../mol-util/param-definition.js").ParamDefinition.Normalize<{
                dynamicBonds: /*elided*/ any;
                radius: /*elided*/ any;
            }>, "symmetry-mates"> | import("../../mol-util/param-definition.js").ParamDefinition.NamedParams<import("../../mol-util/param-definition.js").ParamDefinition.Normalize<{
                dynamicBonds: /*elided*/ any;
                generators: /*elided*/ 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/index.js").StateTransformer<import("../../mol-state/index.js").StateObject<any, import("../../mol-state/index.js").StateObject.Type<any>>, import("../../mol-state/index.js").StateObject<any, import("../../mol-state/index.js").StateObject.Type<any>>, any>> | StateObjectSelector<PluginStateObject.Volume.Representation3D, import("../../mol-state/index.js").StateTransformer<import("../../mol-state/index.js").StateObject<any, import("../../mol-state/index.js").StateObject.Type<any>>, import("../../mol-state/index.js").StateObject<any, import("../../mol-state/index.js").StateObject.Type<any>>, any>>)[]>;
};
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.js").FileNameInfo, data: Uint8Array<ArrayBufferLike> | import("../../mol-io/common/string-like.js").StringLike) => boolean;
    parse: (plugin: PluginContext, data: import("../../mol-state/index.js").StateObjectRef<PluginStateObject.Data.String | PluginStateObject.Data.Binary>, params?: DsCifParams) => Promise<{
        volumes: StateObjectSelector<PluginStateObject.Volume.Data, import("../../mol-state/index.js").StateTransformer<import("../../mol-state/index.js").StateObject<any, import("../../mol-state/index.js").StateObject.Type<any>>, import("../../mol-state/index.js").StateObject<any, import("../../mol-state/index.js").StateObject.Type<any>>, any>>[];
    }>;
    visuals: (plugin: PluginContext, data: {
        volumes: StateObjectSelector<PluginStateObject.Volume.Data>[];
    }) => Promise<StateObjectSelector<PluginStateObject.Volume.Representation3D, import("../../mol-state/index.js").StateTransformer<import("../../mol-state/index.js").StateObject<any, import("../../mol-state/index.js").StateObject.Type<any>>, import("../../mol-state/index.js").StateObject<any, import("../../mol-state/index.js").StateObject.Type<any>>, any>>[]>;
};
export declare const SegcifProvider: {
    label: string;
    description: string;
    category: string;
    stringExtensions: string[];
    binaryExtensions: string[];
    isApplicable: (info: import("../../mol-util/file-info.js").FileNameInfo, data: Uint8Array<ArrayBufferLike> | import("../../mol-io/common/string-like.js").StringLike) => boolean;
    parse: (plugin: PluginContext, data: import("../../mol-state/index.js").StateObjectRef<PluginStateObject.Data.String | PluginStateObject.Data.Binary>) => Promise<{
        volumes: StateObjectSelector<PluginStateObject.Volume.Data, import("../../mol-state/index.js").StateTransformer<import("../../mol-state/index.js").StateObject<any, import("../../mol-state/index.js").StateObject.Type<any>>, import("../../mol-state/index.js").StateObject<any, import("../../mol-state/index.js").StateObject.Type<any>>, any>>[];
    }>;
    visuals: (plugin: PluginContext, data: {
        volumes: StateObjectSelector<PluginStateObject.Volume.Data>[];
    }) => Promise<StateObjectSelector<PluginStateObject.Volume.Representation3D, import("../../mol-state/index.js").StateTransformer<import("../../mol-state/index.js").StateObject<any, import("../../mol-state/index.js").StateObject.Type<any>>, import("../../mol-state/index.js").StateObject<any, import("../../mol-state/index.js").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/index.js").StateObjectRef<PluginStateObject.Data.String | PluginStateObject.Data.Binary>, params?: Params) => Promise<{
        format: StateObjectSelector<PluginStateObject.Format.Ccp4, import("../../mol-state/index.js").StateTransformer<PluginStateObject.Data.Binary, PluginStateObject.Format.Ccp4, import("../../mol-util/param-definition.js").ParamDefinition.Normalize<{}>>>;
        volume: StateObjectSelector<PluginStateObject.Volume.Data, import("../../mol-state/index.js").StateTransformer<PluginStateObject.Format.Ccp4, PluginStateObject.Volume.Data, import("../../mol-util/param-definition.js").ParamDefinition.Normalize<{
            voxelSize: import("../../mol-math/linear-algebra.js").Vec3;
            offset: import("../../mol-math/linear-algebra.js").Vec3;
            entryId: string;
        }>>>;
    }>;
    visuals: typeof defaultVisuals;
}], readonly ["dsn6", {
    label: string;
    description: string;
    category: string;
    binaryExtensions: string[];
    parse: (plugin: PluginContext, data: import("../../mol-state/index.js").StateObjectRef<PluginStateObject.Data.String | PluginStateObject.Data.Binary>, params?: Params) => Promise<{
        format: StateObjectSelector<PluginStateObject.Format.Dsn6, import("../../mol-state/index.js").StateTransformer<PluginStateObject.Data.Binary, PluginStateObject.Format.Dsn6, import("../../mol-util/param-definition.js").ParamDefinition.Normalize<{}>>>;
        volume: StateObjectSelector<PluginStateObject.Volume.Data, import("../../mol-state/index.js").StateTransformer<PluginStateObject.Format.Dsn6, PluginStateObject.Volume.Data, import("../../mol-util/param-definition.js").ParamDefinition.Normalize<{
            voxelSize: import("../../mol-math/linear-algebra.js").Vec3;
            entryId: string;
        }>>>;
    }>;
    visuals: typeof defaultVisuals;
}], readonly ["cube", {
    label: string;
    description: string;
    category: string;
    stringExtensions: string[];
    parse: (plugin: PluginContext, data: import("../../mol-state/index.js").StateObjectRef<PluginStateObject.Data.String | PluginStateObject.Data.Binary>, params?: Params) => Promise<{
        format: StateObjectSelector<PluginStateObject.Format.Cube, import("../../mol-state/index.js").StateTransformer<PluginStateObject.Data.String, PluginStateObject.Format.Cube, import("../../mol-util/param-definition.js").ParamDefinition.Normalize<{}>>>;
        volume: StateObjectSelector<PluginStateObject.Volume.Data, import("../../mol-state/index.js").StateTransformer<PluginStateObject.Format.Cube, PluginStateObject.Volume.Data, import("../../mol-util/param-definition.js").ParamDefinition.Normalize<{
            dataIndex: number;
            entryId: string;
        }>>>;
        structure: StateObjectSelector<PluginStateObject.Molecule.Structure, import("../../mol-state/index.js").StateTransformer<PluginStateObject.Molecule.Model, PluginStateObject.Molecule.Structure, import("../../mol-util/param-definition.js").ParamDefinition.Normalize<{
            type: import("../../mol-util/param-definition.js").ParamDefinition.NamedParams<import("../../mol-util/param-definition.js").ParamDefinition.Normalize<{
                dynamicBonds: /*elided*/ any;
            }>, "auto"> | import("../../mol-util/param-definition.js").ParamDefinition.NamedParams<import("../../mol-util/param-definition.js").ParamDefinition.Normalize<{
                dynamicBonds: /*elided*/ any;
                ijkMin: /*elided*/ any;
                ijkMax: /*elided*/ any;
            }>, "symmetry"> | import("../../mol-util/param-definition.js").ParamDefinition.NamedParams<import("../../mol-util/param-definition.js").ParamDefinition.Normalize<{
                dynamicBonds: /*elided*/ any;
                id: /*elided*/ any;
            }>, "assembly"> | import("../../mol-util/param-definition.js").ParamDefinition.NamedParams<import("../../mol-util/param-definition.js").ParamDefinition.Normalize<{
                dynamicBonds: /*elided*/ any;
            }>, "model"> | import("../../mol-util/param-definition.js").ParamDefinition.NamedParams<import("../../mol-util/param-definition.js").ParamDefinition.Normalize<{
                dynamicBonds: /*elided*/ any;
                radius: /*elided*/ any;
            }>, "symmetry-mates"> | import("../../mol-util/param-definition.js").ParamDefinition.NamedParams<import("../../mol-util/param-definition.js").ParamDefinition.Normalize<{
                dynamicBonds: /*elided*/ any;
                generators: /*elided*/ 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/index.js").StateTransformer<import("../../mol-state/index.js").StateObject<any, import("../../mol-state/index.js").StateObject.Type<any>>, import("../../mol-state/index.js").StateObject<any, import("../../mol-state/index.js").StateObject.Type<any>>, any>> | StateObjectSelector<PluginStateObject.Volume.Representation3D, import("../../mol-state/index.js").StateTransformer<import("../../mol-state/index.js").StateObject<any, import("../../mol-state/index.js").StateObject.Type<any>>, import("../../mol-state/index.js").StateObject<any, import("../../mol-state/index.js").StateObject.Type<any>>, any>>)[]>;
}], readonly ["dx", {
    label: string;
    description: string;
    category: string;
    stringExtensions: string[];
    binaryExtensions: string[];
    parse: (plugin: PluginContext, data: import("../../mol-state/index.js").StateObjectRef<PluginStateObject.Data.String | PluginStateObject.Data.Binary>, params?: Params) => Promise<{
        volume: StateObjectSelector<PluginStateObject.Volume.Data, import("../../mol-state/index.js").StateTransformer<PluginStateObject.Format.Dx, PluginStateObject.Volume.Data, import("../../mol-util/param-definition.js").ParamDefinition.Normalize<{}>>>;
    }>;
    visuals: typeof defaultVisuals;
}], readonly ["dscif", {
    label: string;
    description: string;
    category: string;
    stringExtensions: string[];
    binaryExtensions: string[];
    isApplicable: (info: import("../../mol-util/file-info.js").FileNameInfo, data: Uint8Array<ArrayBufferLike> | import("../../mol-io/common/string-like.js").StringLike) => boolean;
    parse: (plugin: PluginContext, data: import("../../mol-state/index.js").StateObjectRef<PluginStateObject.Data.String | PluginStateObject.Data.Binary>, params?: DsCifParams) => Promise<{
        volumes: StateObjectSelector<PluginStateObject.Volume.Data, import("../../mol-state/index.js").StateTransformer<import("../../mol-state/index.js").StateObject<any, import("../../mol-state/index.js").StateObject.Type<any>>, import("../../mol-state/index.js").StateObject<any, import("../../mol-state/index.js").StateObject.Type<any>>, any>>[];
    }>;
    visuals: (plugin: PluginContext, data: {
        volumes: StateObjectSelector<PluginStateObject.Volume.Data>[];
    }) => Promise<StateObjectSelector<PluginStateObject.Volume.Representation3D, import("../../mol-state/index.js").StateTransformer<import("../../mol-state/index.js").StateObject<any, import("../../mol-state/index.js").StateObject.Type<any>>, import("../../mol-state/index.js").StateObject<any, import("../../mol-state/index.js").StateObject.Type<any>>, any>>[]>;
}], readonly ["segcif", {
    label: string;
    description: string;
    category: string;
    stringExtensions: string[];
    binaryExtensions: string[];
    isApplicable: (info: import("../../mol-util/file-info.js").FileNameInfo, data: Uint8Array<ArrayBufferLike> | import("../../mol-io/common/string-like.js").StringLike) => boolean;
    parse: (plugin: PluginContext, data: import("../../mol-state/index.js").StateObjectRef<PluginStateObject.Data.String | PluginStateObject.Data.Binary>) => Promise<{
        volumes: StateObjectSelector<PluginStateObject.Volume.Data, import("../../mol-state/index.js").StateTransformer<import("../../mol-state/index.js").StateObject<any, import("../../mol-state/index.js").StateObject.Type<any>>, import("../../mol-state/index.js").StateObject<any, import("../../mol-state/index.js").StateObject.Type<any>>, any>>[];
    }>;
    visuals: (plugin: PluginContext, data: {
        volumes: StateObjectSelector<PluginStateObject.Volume.Data>[];
    }) => Promise<StateObjectSelector<PluginStateObject.Volume.Representation3D, import("../../mol-state/index.js").StateTransformer<import("../../mol-state/index.js").StateObject<any, import("../../mol-state/index.js").StateObject.Type<any>>, import("../../mol-state/index.js").StateObject<any, import("../../mol-state/index.js").StateObject.Type<any>>, any>>[]>;
}]];
export type BuildInVolumeFormat = (typeof BuiltInVolumeFormats)[number][0];
export {};
