import { CustomModelProperty } from 'molstar/lib/mol-model-props/common/custom-model-property';
import { CustomProperty } from 'molstar/lib/mol-model-props/common/custom-property';
import { PropertyWrapper } from 'molstar/lib/mol-model-props/common/wrapper';
import { IndexedCustomProperty, Model } from 'molstar/lib/mol-model/structure';
import { Structure, StructureElement } from 'molstar/lib/mol-model/structure/structure';
import { ParamDefinition as PD } from 'molstar/lib/mol-util/param-definition';
export { DomainAnnotations };
type DomainAnnotations = PropertyWrapper<{
    domains: IndexedCustomProperty.Residue<string[]>;
    domainNames: string[][];
    domainTypes: string[];
} | undefined>;
declare namespace DomainAnnotations {
    const DefaultServerUrl = "https://www.ebi.ac.uk/pdbe/api/mappings";
    function getEntryUrl(pdbId: string, serverUrl: string): string;
    function isApplicable(model?: Model): boolean;
    function fromJson(model: Model, data: any): DomainAnnotations;
    function fromServer(ctx: CustomProperty.Context, model: Model, props: DomainAnnotationsProps): Promise<CustomProperty.Data<DomainAnnotations>>;
    /** Return a list of domainSource:domainName strings for a particular location (e.g. ['CATH:Globin']) */
    function getDomains(e: StructureElement.Location): string[];
    /** Decide whether a structure location belongs to a domain */
    function isInDomain(e: StructureElement.Location, domainSource: string, domainName: string): boolean;
    function getDomainTypes(structure?: Structure): string[];
    function getDomainNames(structure?: Structure): string[][];
}
export declare const DomainAnnotationsParams: {
    serverUrl: PD.Text<string>;
};
export type DomainAnnotationsParams = typeof DomainAnnotationsParams;
export type DomainAnnotationsProps = PD.Values<DomainAnnotationsParams>;
export declare const DomainAnnotationsProvider: CustomModelProperty.Provider<DomainAnnotationsParams, DomainAnnotations>;
