/**
 * Copyright (c) 2018-2020 mol* contributors, licensed under MIT, See LICENSE file for more info.
 *
 * @author Michal Malý <michal.maly@ibt.cas.cz>
 * @author Jiří Černý <jiri.cerny@ibt.cas.cz>
 */
import { DataLocation } from '../../../mol-model/location';
import { ElementIndex, Structure, StructureElement, Unit } from '../../../mol-model/structure';
export declare namespace ConfalPyramidsTypes {
    type Pyramid = {
        PDB_model_number: number;
        name: string;
        auth_asym_id_1: string;
        auth_seq_id_1: number;
        label_comp_id_1: string;
        label_alt_id_1: string;
        PDB_ins_code_1: string;
        auth_asym_id_2: string;
        auth_seq_id_2: number;
        label_comp_id_2: string;
        label_alt_id_2: string;
        PDB_ins_code_2: string;
        confal_score: number;
        NtC: string;
    };
    interface PyramidsData {
        pyramids: Array<Pyramid>;
        names: Map<string, number>;
        locations: Array<Location>;
        hasMultipleModels: boolean;
    }
    interface LocationData {
        readonly pyramid: Pyramid;
        readonly isLower: boolean;
    }
    interface Element {
        structure: Structure;
        unit: Unit.Atomic;
        element: ElementIndex;
    }
    interface Location extends DataLocation<LocationData, Element> {
    }
    function Location(pyramid: Pyramid, isLower: boolean, structure?: Structure, unit?: Unit.Atomic, element?: ElementIndex): DataLocation<{
        pyramid: Pyramid;
        isLower: boolean;
    }, {
        structure: any;
        unit: any;
        element: any;
    }>;
    function isLocation(x: any): x is Location;
    function toElementLocation(location: Location): StructureElement.Location<Unit.Atomic>;
}
