import { InitParams } from './spec';
import { LoadParams, QueryParam } from './helpers';
import { Color } from 'Molstar/mol-util/color/color';
import { EmdbDownloadProvider } from 'molstar/lib/mol-plugin-state/actions/volume';
import { PluginToast } from 'molstar/lib/mol-plugin/util/toast';
import { PluginContext } from 'molstar/lib/mol-plugin/context';
export interface Selector {
    label?: RegExp;
    description?: RegExp;
    type?: {
        typeClass: string;
        name: string;
    };
}
declare class PDBeMolstarPlugin {
    private _ev;
    readonly events: {
        loadComplete: import("rxjs").Subject<boolean>;
        updateComplete: import("rxjs").Subject<boolean>;
        sequenceComplete: import("rxjs").Subject<unknown>;
        chainUpdate: import("rxjs").Subject<string>;
        ligandUpdate: import("rxjs").Subject<{
            ligandId: string;
            chainId: string;
        }>;
        dependencyChanged: {
            onChainUpdate: import("rxjs").Subject<(chainId: string) => void>;
            isLigandView: import("rxjs").Subject<() => boolean>;
        };
    };
    plugin: PluginContext;
    initParams: InitParams;
    targetElement: HTMLElement;
    assemblyRef: string;
    selectedParams: any;
    defaultRendererProps: any;
    isHighlightColorUpdated: boolean;
    isSelectedColorUpdated: boolean;
    toasts: string[];
    proteinId: string | undefined;
    render(target: string | HTMLElement, options: InitParams): Promise<false | undefined>;
    getMoleculeSrcUrl(): {
        url: string;
        format: string;
        isBinary: boolean;
    } | undefined;
    get state(): import("molstar/lib/mol-state/state").State;
    createLigandStructure(isBranched: boolean): Promise<void>;
    loadEmdb(options: {
        id: string;
        detail: number;
        provider: EmdbDownloadProvider;
    }): Promise<void>;
    loadEmdbFromUrl(options: {
        url: string;
        isBinary: boolean;
        format: string;
    }): Promise<void>;
    load({ url, label, format, isBinary, assemblyId, }: LoadParams, fullLoad?: boolean): Promise<void>;
    applyVisualParams: () => void;
    canvas: {
        toggleControls: (isVisible?: boolean | undefined) => void;
        showToast: (toast: PluginToast) => Promise<void>;
        hideToasts: () => Promise<void>;
        toggleExpanded: (isExpanded?: boolean | undefined) => void;
        setBgColor: (color?: {
            r: number;
            g: number;
            b: number;
        } | undefined) => void;
        applySettings: (settings?: {
            color?: {
                r: number;
                g: number;
                b: number;
            } | undefined;
            lighting?: string | undefined;
        } | undefined) => void;
    };
    getLociForParams(params: QueryParam[], structureNumber?: number): import("molstar/lib/mol-model/structure/structure/element/loci").Loci | {
        kind: "empty-loci";
    };
    getLociByPLDDT(score: number, structureNumber?: number): import("molstar/lib/mol-model/structure/structure/element/loci").Loci | {
        kind: "empty-loci";
    };
    normalizeColor(colorVal: any, defaultColor?: Color): Color;
    updateState: {
        proteinId: (id: string | undefined) => void;
    };
    visual: {
        highlight: (params: {
            data: QueryParam[];
            color?: any;
            focus?: boolean;
            structureNumber?: number;
        }) => void;
        clearHighlight: () => Promise<void>;
        select: (params: {
            data: QueryParam[];
            nonSelectedColor?: any;
            addedRepr?: boolean;
            structureNumber?: number;
        }) => Promise<void>;
        clearSelection: (structureNumber?: number | undefined) => Promise<void>;
        update: (options: InitParams, fullLoad?: boolean | undefined) => Promise<false | undefined>;
        updateChain: (chainId: string) => void;
        updateLigand: (options: {
            chainId: string;
            ligandId: string;
        }) => void;
        updateDependency: {
            onChainUpdate: (callback: (chainId: string) => void) => void;
            isLigandView: (callback: () => boolean) => void;
        };
        visibility: (data: {
            [key: string]: any;
            polymer?: boolean | undefined;
            het?: boolean | undefined;
            water?: boolean | undefined;
            carbs?: boolean | undefined;
            maps?: boolean | undefined;
        }) => void;
        setVisibility: (selector: Selector, visible: boolean) => void;
        getMapVolume: () => string | undefined;
        remove: (selector: Selector) => void;
        toggleSpin: (isSpinning?: boolean | undefined, resetCamera?: boolean | undefined) => void;
        focus: (params: QueryParam[], structureNumber?: number | undefined) => Promise<void>;
        setColor: (param: {
            highlight?: any;
            select?: any;
        }) => void;
        reset: (params: {
            camera?: boolean;
            theme?: boolean;
            highlightColor?: boolean;
            selectColor?: boolean;
        }) => Promise<void>;
    };
    private getCellsBySelector;
    clear(): Promise<void>;
}
export { PDBeMolstarPlugin };
