import { Mat4 } from 'molstar/lib/mol-math/linear-algebra';
import { PluginStateObject as PSO } from 'molstar/lib/mol-plugin-state/objects';
import { PluginContext } from 'molstar/lib/mol-plugin/context';
import { StateObjectRef, StateObjectSelector } from 'molstar/lib/mol-state';
import { ColorListEntry } from 'molstar/lib/mol-util/color/color';
import { Subject } from 'rxjs';
import { ClusterMember } from './plugin-custom-state';
export declare const SuperpositionColorPalette: ColorListEntry[];
export declare function getNextColor(plugin: PluginContext, segmentIndex: number): ColorListEntry;
export declare function initSuperposition(plugin: PluginContext, completeSubject?: Subject<boolean>): Promise<void>;
export declare function loadAfStructure(plugin: PluginContext): Promise<string | false>;
export declare function superposeAf(plugin: PluginContext, traceOnly: boolean, segmentIndex?: number): Promise<true | undefined>;
export declare function renderSuperposition(plugin: PluginContext, segmentIndex: number, entryList: ClusterMember[]): Promise<void>;
/** Apply tranformation to a structure. Only use once per structure, combining multiple transformations is not implemented. */
export declare function transform(plugin: PluginContext, s: StateObjectRef<PSO.Molecule.Structure>, matrix: Mat4): Promise<StateObjectSelector<PSO.Molecule.Structure, import("molstar/lib/mol-state").StateTransformer<import("molstar/lib/mol-state").StateObject<any, import("molstar/lib/mol-state").StateObject.Type<any>>, import("molstar/lib/mol-state").StateObject<any, import("molstar/lib/mol-state").StateObject.Type<any>>, any>>>;
